Sortieren Sie XML nach XML mithilfe von XSLT

Ich habe ein paar ähnliche Fragen zu diesem Thema gefunden, aber ich hatte Mühe, die Lösung für das, was ich brauche, zu "biegen", also entschuldige mich für die erneute Frage.

Ich habe XML wie dieses ...

<?xml version="1.0" encoding="UTF-8"?>

<ns:Root
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ns="urn:Test.Namespace"  
    xsi:schemaLocation="urn:Test.Namespace Test1.xsd"
    >
    <ns:element1 id="001">
        <ns:element2 id="001.1" order="1">
            <ns:element3 id="001.1.1" />
        </ns:element2>
        <ns:element2 id="001.2" order="2">
            <ns:element3 id="001.1.2" />
        </ns:element2>        
    </ns:element1>
    <ns:element1 id="003">
        <ns:element2 id="007.0" order="1">
            <ns:element3 id="007.1.1" />
        </ns:element2>
    </ns:element1>
    <ns:element1 id="002">
        <ns:element2 id="002.1" order="3">
            <ns:element3 id="002.1.1" />
        </ns:element2>
        <ns:element2 id="002.2" order="4">
            <ns:element3 id="002.1.2" />
        </ns:element2> 
    </ns:element1>    
</ns:Root>

Ich habe dieses XSLT geschrieben

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:ns="urn:Test.Namespace"
                >
    <xsl:output indent="no" />
    <xsl:template match="text()[not(string-length(normalize-space()))]"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="/">
        <xsl:apply-templates>
            <xsl:sort select="/ns:Root/ns:element1/@id" />
            <xsl:copy-of select="." />
        </xsl:apply-templates>
    </xsl:template>

    <xsl:template match="ns:element1">
        <xsl:copy-of select="." />
        <xsl:apply-templates />        
    </xsl:template>

    <xsl:template match="ns:element2">
        <xsl:copy-of select="." />
        <xsl:apply-templates />
    </xsl:template>

    <xsl:template match="ns:element3">
        <xsl:copy-of select="." />
    </xsl:template>

</xsl:stylesheet>

(Ich habe die Umrisse dafür von hier aus abgeschnittenWie sortiere ich XML?)

Ich möchte in der Lage sein, dieses XSLT zu verwenden, um mein ursprüngliches XML nach dem id-Attribut von element1 zu sortieren und XML zu erzeugen. Die Idee ist, dass ich, sobald es sortiert ist, mit einem anderen XSLT arbeiten kann, um das Endergebnis zu erhalten.

Leider gibt mir das keine Ausgabe, was mich denken lässt, dass es einen wirklich dummen Tippfehler gibt. irgendwo, aber ich kann es nicht sehen.

Jede Hilfe wäre dankbar.

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage