Я пытаюсь отсортировать файл XML по значению дочернего элемента с помощью XSLT.Элемент сортировки имеет следующий родственный элемент, который всегда должен быть после него.
XSLT, который я сделал до сих пор:
<xsl:template match="parent">
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:copy-of select="*[not(self::city | self::cityNumber)]" />
<xsl:for-each select="city">
<xsl:sort select="text()" />
<xsl:copy-of select="." />
</xsl:for-each>
</xsl:copy>
</xsl:template>
Файл XML выглядит следующим образом:
<parent>
<name>Bob</name>
<name>Alice</name>
<another-attribute>something</another-attribute>
<city>B.111Kansas City</city>
<cityNumber>1</cityNumber>
<city>A.123Atlanta</city>
<cityNumber>2</cityNumber>
</parent>
Я ожидаю выхода:
<parent>
<name>Bob</name>
<name>Alice</name>
<another-attribute>something</another-attribute>
<city>A.123Atlanta</city>
<cityNumber>2</cityNumber>
<city>B.111Kansas City</city>
<cityNumber>1</cityNumber>
</parent>
Спасибо!