我需要在给定节点之前添加新的xml节点。
示例:
<doc>
<a></a>
<b></b>
<c></c>
<a></a>
<d></d>
<e></e>
<a></a>
</doc>
我需要在每个<n>
节点之前添加新的<a>
节点。所以输出应该是
<doc>
<n></n>
<a></a>
<b></b>
<c></c>
<n></n>
<a></a>
<d></d>
<e></e>
<n></n>
<a></a>
</doc>
我可以在给定节点内或给定节点之后添加新节点。但我找不到在给定节点之前添加新节点的方法。
知道怎么做吗?
答案 0 :(得分:1)
您可以拥有一个仅与a
匹配的单独模板。在该模板中,您可以添加<n>
节点:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" />
<xsl:template match="/">
<doc>
<xsl:apply-templates select="doc/*"/>
</doc>
</xsl:template>
<xsl:template match="a">
<n></n>
<a></a>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{local-name()}"></xsl:element>
</xsl:template>
</xsl:stylesheet>