我的问题是我的XML文档中包含XHTML的片段,并且在通过XSLT传递它时,我希望它能够渲染这些片段而不会破坏它们。
我已经尝试将代码段包装在CDATA中,但由于小于和大于转换为<和>而不是直接回应。
这样做需要什么样的XSL?
答案 0 :(得分:7)
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
这被称为XSLT specification中的“身份转换”。
答案 1 :(得分:2)
我遇到了这个问题,副本肯定是最容易使用的。身份是有效的,但这是5行代码,你需要调用这样一个模板,而不仅仅是在你的XSLT文档中定义它(否则你可能无法得到你在输出中的预期。)
我的主要问题实际上是复制标签的内容,而不是标签本身。它实际上很容易解决,但我花了一点时间来解决它(可能是因为QtXmlPatterns崩溃了很多!)
因此,以下内容复制了此处命名的标签及其所有子项:
<xsl:copy-of select="this/tag/here"/>
但大多数时候你不想这样做,因为&lt; here&gt;实际上是容器,换句话说,它不应该出现在输出中。在这种情况下,您可以简单地执行此操作:
<xsl:copy-of select="this/tag/here/*"/>
这会复制在名为&lt; here&gt;。
的标记中找到的所有子项答案 2 :(得分:1)
假设您的xhtml位于元素YYY中
答案 3 :(得分:0)
的xsl:复制的