Я использую следующий XSLT, но порядок узлов после сортировки представляет для меня небольшую проблему, так как они не следуют тому же порядку, что и при вводе.
enter code here
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="Types">
<xsl:sort select="Type1"/>
</xsl:apply-templates>
<xsl:apply-templates select="SecondTypes">
<xsl:sort select="Type1"/>
</xsl:apply-templates>
<xsl:apply-templates select="ServiceOption">
<xsl:sort select="Issue"/>
</xsl:apply-templates>
<xsl:apply-templates select="ServiceConcession">
<xsl:sort select="Concession" data-type="number"/>
</xsl:apply-templates>
<xsl:apply-templates select="node()[not(self::Types|self::SecondTypes|self::ServiceOption|self::ServiceConcession)]|@*"/>
</xsl:copy>
</xsl:template>