Erste XSL-Transformationen

Mit XSL-Transformation werden XML-Dateien verarbeitet, im einfachsten Fall (aber durchaus nicht immer!) wird wieder eine XML-Datei erzeugt. Der Vorgang lässt sich so beschreiben:

XML + XSL → Output (XML, HTML, Text, …)

Ohne ein XSL-Stylesheet läuft es nicht! Und ein minimales Stylesheet sieht so aus:

Bei dieser minimalen Transformation erhält man als Ergebnis nur die Texte aus den Elementen des XML-Input; nützlich dabei ist lediglich, dass geprüft wird, ob der XML-Input well-formed ist.

Der nächste Schritt ist die Durchführung einer identischen Transformation, das heißt der Output entspricht dem XML-Input unter XML-Gesichtspunkten. Die am weitesten verbreitete Identity Transform sieht folgendermaßen aus:



    
        
    

XSL-Profi Andrew Welch stellte nun in der XSL-Liste (und auf seinem Blog) die Frage, ob es nicht besser ginge, denn die Anweisung xsl:apply-templates sei ja bei der Verarbeitung von Attributen (@*) überflüssig und koste vielleicht unnötig Rechenzeit.

Darauf meldete sich Michael Kay zu Wort und optimierte Andrew Welchs Idee zu einer übersichtlicheren Lösung:



    
        
    



    
 

Hier wird klarer erkennbar, dass es neben Element-Knoten noch Attribut-, Text-, Kommentar- und PI-Knoten gibt. Letztere sind wie die Blätter am XML-Baum, sie haben keine weiteren Verzweigungen, sondern nur einen Wert und manchmal auch einen Namen (Attribut, PI). Die Verzweigung in Kinder bleibt den Elementen vorbehalten, weshalb nur dort die Anweisung xsl:apply-templates benötigt wird.

Achtung: Wenn Sie nicht XSLT 2.0 verwenden, müssen Sie `XSLT-Schulungen, denn davon ausgehend lassen sich gezielt Elemente filtern oder verändern, ohne den Rest der XML-Datei zu verändern.

PS: Andrew Welch ist der Programmierer von Kernow, einem Frontend zum XSL-Transformator Saxon, der wiederum von Michael Kay programmiert wird.

Dieser Beitrag wurde unter XML/XSL veröffentlicht. Setze ein Lesezeichen auf den Permalink.

2 Antworten zu Erste XSL-Transformationen

  1. Cathy Baird sagt:

    Any chance you could run a parallel blog in English? 🙂

  2. Hi Cathy,

    I would love to, but I cannot pay my bills from publishing 🙂

    If you are interested in XML/XSL, you may want to have a look at the blogs of Andrew Welch and Jeni Tennison. Regarding Technical Communications I follow the blog of Scriptorium Publishing.

    I am well aware there are hundreds of other interesting blogs out there, but as I mentioned above, you have to…, well, have the time to read and/or write all this.

    Thanks a lot for your interest in my opinions.

    – Michael

Kommentare sind geschlossen.