在应用XSLT时,是否可以在XML中保留注释?
示例(来源):
<rootNode>
<!-- My comment --><childElement>5</childElement>
</rootNode>
转换后的样本结果应为:
<newRoot>
<!-- My comment --><newChildElement>5</newChildElement>
</newRoot>
你会如何编写样式表?
答案 0 :(得分:4)
在您的示例中,这不是正确的XML注释语法,但您可以使用
保留所有节点<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
然后为要转换的节点添加模板
<xsl:template match="childElement">
<newChildElement>
<xsl:apply-templates select="@* | node()"/>
</newChildElement>
</xsl:template>
我的建议假设样本为
<rootNode>
<!-- My comment--><childElement>5</childElement>
</rootNode>
,结果为
<rootNode>
<!-- My comment--><newChildElement>5</newChildElement>
</rootNode>
如果childElement
在评论中,则更难。
答案 1 :(得分:1)
如果我理解正确的问题,那就非常简单了:
<xsl:template match="comment()">
<xsl:copy/>
</xsl:template>