XSLT之路3---引用外部类
引用外部类
1.定义一个类
2.定义一个XSLT
3.c#导入urn:myPolicy
4.脚本调用外部类
/// <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() ; }
}
申明一个命名空间: <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)"/>
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
作者:Roader
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.