如何使用嵌套标签父标签

时间:2019-06-14 07:56:11

标签: xslt xslt-1.0 xslt-2.0

我有一个看起来像这样的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>

1 个答案:

答案 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>

https://xsltfiddle.liberty-development.net/pPzifq2/1