XSLT之路3---引用外部类

引用外部类

1.定义一个类
2.定义一个XSLT
3.c#导入urn:myPolicy
4.脚本调用外部类

1.定义一个类:

/// <summary>
/// 保单
/// </summary> public class Policy { //<xs:attribute name="Amount" type="xs:integer" use="required" /> public string InsuredListInstance(int amount) { this.Insureds.Amount = amount; return "Insureds Count" + this.Insureds.Count.ToString() ; }
}

2.定义一个XSLT:

申明一个命名空间:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:myPolicy="urn:myPolicy">

使用外部类函数:
 <xsl:value-of select="myPolicy:InsuredListInstance(@Amount)"/>

3.c#导入myPolicy:

public static string XLST(Policy policy,XmlReader xmlreader,XmlReader xlstReader)
{
    StringBuilder sb = new StringBuilder();
    try
    {
        XslCompiledTransform xslt = new XslCompiledTransform();
        xslt.Load(xlstReader);

        XPathDocument doc = new XPathDocument(xmlreader);

        XsltArgumentList xslArg = new XsltArgumentList();

        ///Policy policy = new Policy();
        xslArg.AddExtensionObject("urn:myPolicy", policy);
        System.IO.StringWriter sw = new System.IO.StringWriter(sb);
        XmlTextWriter writer = new XmlTextWriter(sw);//Console.Out

        xslt.Transform(doc, xslArg, writer);
        writer.Close();
    }
    catch (Exception ex)
    { 
        throw ex; 
        //throw new Exception("xlst转换失败");
    }

    return sb.ToString();
}

 4.脚本调用外部类:详见另一篇http://www.cnblogs.com/meixiaoqiang/p/3432838.html

 

转载于:https://www.cnblogs.com/meixiaoqiang/p/3432898.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值