как создать родительский тег с помощью вложенного тега с помощью xsl - PullRequest
0 голосов
/ 15 июня 2019

У меня есть XML-файл, который выглядит следующим образом:

<SNS>
<SN>aaaa</SN>
</SNS>
<SNS>
<SN>bbbb</SN>
<LN>cccc</LN>
</SNS>
<SNS>
<SN>dddd</SN>
</SNS>
<SNS>
<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" с помощью "LN"?

1 Ответ

0 голосов
/ 16 июня 2019

Во-первых, предоставленный XML недействителен . Он должен быть включен в корневой элемент. Например:

<root>
  <SNS>
    <SN>aaaa</SN>
  </SNS>
  <SNS>
    <SN>bbbb</SN>
    <LN>cccc</LN>
  </SNS>
  <SNS>
    <SN>dddd</SN>
  </SNS>
  <SNS>
    <SN>eeee</SN>
    <LN>ffff</LN>
  </SNS>
</root>

Тогда, если вы хотите вывести только потомки элемента <SNS>, вы можете использовать следующее преобразование:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <xsl:apply-templates/>
  </xsl:template>
  <xsl:template match="SNS//*">
    <xsl:copy>
      <xsl:apply-templates/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>
...