Я не очень хорошо разбираюсь в xsl, но я бы хотел отсортировать следующий xml:
<Parent>
<node1/>
<class>b</class>
<class>c</class>
<node2/>
<class>a</class>
</Parent>
в следующее, так что сортируются только элементы класса, а другие элементы не затрагиваются:
<Parent>
<node1/>
<class>a</class>
<class>b</class>
<class>c</class>
<node2/>
</Parent>
Я использую следующий xsl в коде Java для преобразования моего xml:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="class">
<xsl:copy>
<xsl:apply-templates select="*" >
<xsl:sort order="ascending" select="class" />
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
это дает мне:
<Parent>
<node1/>
<class/>
<class/>
<node2/>
<class/>
</Parent>