我正致力于转换以下xml。
<root>
<node1>
<node2 id="1">xyz</node2>
</node1>
<node1>
<node2 id="2">abc</node2>
</node1>
<parent>
<child>abc</child>
</parent>
</root>
我想将其转换为以下格式:
<root>
<node1>
<node2 id="1">xyz</node2>
</node1>
<parent>
<child>abc</child>
<node1>
<node2 id="2">abc</node2>
</node1>
</parent>
</root>
我已添加模板以复制子元素
我需要检查id属性,如果它等于2,则复制父节点。如果有人帮忙,我将不胜感激。
提前谢谢。
答案 0 :(得分:1)
如果您输入的XML格式与您的问题没有太大差异,那么此XSLT将起作用:
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*/*[*[@id = '2']]"/>
<xsl:template match="parent">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
<xsl:copy-of select="/*/*[*[@id = '2']]"/>
</xsl:copy>
</xsl:template>
</xsl:transform>