使用 XSLT 我们如何呈现 CDATA 标记



使用 XSLT 我们如何呈现 CDATA 标记?

在 xslt 中,我不想使用文本或用 xml 声明创建 CDATA 标签 使用 cdata-section-elements 的输出标记, 它应该从输入中动态读取它,如果元素值在 CDATA 附近 然后 XSLT 应该呈现相同的内容,如下所示

输入

<A><![CDATA[Hello World]]></A>

XSLT 输出

<A><![CDATA[Hello World]]></A>
操作

的数据模型 XSLT/XPath/XQuery 不知道任何 CDATA 部分,因此您不能简单地保留它们,因为您操作的树在这两种情况下都只包含一个文本节点(即,对于<foo>a &amp; b</foo><foo><![CDATA[a & b]]></foo>树是一个foo元素,其中包含字符串值为 a & b 的单个文本子节点)。

因此,在纯 XSLT 中无法实现您想要的效果,除非您预处理输入以将 CDATA 部分转换为某些结构,例如 XSLT 数据模型允许您检测和区分的元素。Andrew Welch http://andrewjwelch.com/lexev/在Java环境中做到这一点。

因此,如果您使用XSLT 2.0处理器(如Saxon 9和Java),则可以使用这种方法。

相关内容

  • 没有找到相关文章

最新更新