子のname属性に基づいて親ノードを並べ替えたい。
ソートされていないXML:
<grand-parent>
<parent>
<child name="c"/>
<child_next name="a"/>
</parent>
<parent>
<child name="a"/>
<child_next name="a"/>
</parent>
<parent>
<child name="b"/>
<child_next name="a"/>
</parent>
</grand-parent>
期待される出力:
<grand-parent>
<parent>
<child name="a"/>
<child_next name="a"/>
</parent>
<parent>
<child name="b"/>
<child_next name="a"/>
</parent>
<parent>
<child name="c"/>
<child_next name="a"/>
</parent>
</grand-parent>
XSLT使用中(機能していません-入力されたものと同じXMLを返します):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes" method="xml" encoding="UTF-8"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*" name="identity">
<xsl:copy>
<xsl:apply-templates select="node()|@*">
<xsl:sort select="/grand-parent/parent/child/@name" order="descending" />
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>