【问题标题】:How to embed HTML produced by C# code in XSL?如何在 XSL 中嵌入由 C# 代码生成的 HTML?
【发布时间】:2010-02-23 11:29:46
【问题描述】:

我有从 XML 创建 HTML 的 XSLT。我需要通过外部 C# 方法(扩展方法)创建生成的 HTML 的几个部分。

  1. 如何将此 C# 方法嵌入 XSLT(在哪些 xsl 节点中?我知道如何在 XSLT 中使用常用扩展函数)
  2. 我的 C# 函数应该返回什么? HTML 格式的字符串?是否使用转义的 HTML 标签?

非常感谢!

【问题讨论】:

    标签: c# html xslt xsl-fo


    【解决方案1】:

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

    【讨论】:

    • 非常感谢您的回答!我将使用第一个选项。我实际上已经尝试过使用 disable-output-escaping="yes",但它在应用程序中不起作用。现在我知道为什么了!除了 XSLT 内部的这种变化之外,还必须验证 C# 代码中的 Transform(通过提供的 XSLT 执行 XML 到 HTML 的转换)不使用 XMLTextWriter,因为它不转义实体。这:stylusstudio.com/~SSDN/… 帮助了我!我希望它会帮助别人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 2012-08-30
    相关资源
    最近更新 更多