我有一个看起来像这样的XML文件:
fireEvent
必需的输出:
<SNS>
<SN>aaaa</SN>
<SN>bbbb</SN>
<LN>cccc</LN>
<SN>dddd</SN>
<SN>eeee</SN>
<LN>ffff</LN>
</SNS>
如何为每个<SN>aaaa</SN>
<LN>cccc</LN>
<SN>bbbb</SN>
<LN>cccc</LN>
<SN>dddd</SN>
<LN>ffff</LN>
<SN>eeee</SN>
<LN>ffff</LN>
标签添加<SN>
?
答案 0 :(得分:2)
只需处理所有SN
元素,并在其模板中复制以下同级LN
:
<xsl:template match="SNS">
<xsl:apply-templates select="SN"/>
</xsl:template>
<xsl:template match="SN">
<xsl:copy-of select="., following-sibling::LN[1]"/>
</xsl:template>
https://xsltfiddle.liberty-development.net/pPzifq2
在XSLT 3中,您还可以简单地处理每个SN
及其同级LN
并通过身份转换来推动它们:
<xsl:mode on-no-match="shallow-copy"/>
<xsl:template match="SNS">
<xsl:apply-templates select="SN!(., following-sibling::LN[1])"/>
</xsl:template>