2010-02-23 25 views
1

我有从XML创建HTML的XSLT。我需要使用外部C#方法(扩展方法)创建HTML的几个部分。如何在XSL中嵌入由C#代码生成的HTML?

  1. 如何嵌入这个C#方法到XSLT(内什么XSL节点?我不知道如何使用XSLT里面常见的扩展功能)
  2. 什么都要我的C#函数的返回? HTML格式的字符串?使用转义的HTML标签还是没有?

非常感谢!

回答

0

那么,如果你想返回不符合XML规则的HTML标签汤,那么你只能返回一个字符串,然后使用例如。 <xsl:value-of select="pf:yourFunction()" disable-output-escaping="yes"/>。如果要构建节点集或结果树片段,请选中the documentation,它将显示XSLT类型和.NET框架类型之间的映射关系。如果您希望函数返回XSLT将其视为节点集的结果,请将类型XPathNodeIterator用作扩展函数的.NET返回类型。

+0

非常感谢您的回答! 我打算使用第一个选项。我实际上已经尝试使用 disable-output-escaping =“yes”,但它在应用程序内部不起作用。现在我知道为什么了! 除了XSLT内部的这种更改外,还必须验证C#代码中的变换(通过提供的XSLT将XML转换为HTML)不使用XMLTextWriter,因为它不会转义实体。 This: http://www.stylusstudio.com/~SSDN/default.asp?action=9&fid=48&read=3838 帮助我!我希望它能帮助别人。 – user279406 2010-02-23 19:14:52