【发布时间】:2019-03-22 15:35:43
【问题描述】:
我正在使用 XSLT 中的一些 XML。我想将其中的一部分保存在内容节点中。我将 CDATA 节点排除在此示例之外。
当我像这样抓取 xml 时,它被转义了,即。 < =
<content name="test”>
<xsl:copy-of select="//content[@name='something']/node()" />
</content>
但是在将数据存储到内容节点之前,我需要对数据进行一些处理。我有一个 xsl:for-each 调用,它循环保存部分。但是,当我调用类似的命令时,我无法让 XML 转义。
<xsl:for-each select="exsl:node-set($xml)//data">
<content name="test">
<xsl:copy-of select="./node()" />
</content>
我已经在它周围放置了 CDATA 节点并输出了内容,但是我在系统中遇到了双重转义问题。我真的需要这个调用副本来输出转义的 XML。
我真的想要这样的东西:
<content name="test">
<data>Some data<\data>
</content>
输入会是这样的:
<root>
<data>Some data</data>
<data>more data</data>
</root>
这是对数据的简化。数据节点中会有额外的 xml 节点。
【问题讨论】:
-
当涉及到 CDATA 和“转义的 XML”时,最好显示输入/样式表/所需的输出,因为人们倾向于在这个主题中引用非常不同的东西。
-
已更新。我真的只是希望特殊字符转义。 "
-
你有什么意见?
-
看起来您正在对一个文档片段进行字符串化,以供另一个不理解 XML 的应用程序使用。没有输入源就很难分辨。我的建议是从链中删除有问题的应用程序。
-
我输入了一些模拟输入。我认为这与对 exsl:node-set($xml) 的调用有关