Vergleich beider Varianten

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 1.)

Stellt man beide Varianten der Template-Regel einander gegenüber, so scheint die Überlegenheit von XSLT 2.0 und XPath 2.0 gegenüber der Vorgängerver­sion auf der Hand zu liegen. Hier die abwärtskompatible Variante:

<!-- alte Methode (auch mit XSLT 1.0 zu verarbeiten): -->
<xsl:template match="anschrift">
  <xsl:value-of select="strasse"/>
  <xsl:text> </xsl:text>
  <xsl:value-of select="nr"/>
  <xsl:text>, </xsl:text>
  <xsl:value-of select="plz"/>
  <xsl:text> </xsl:text>
  <xsl:value-of select="ort"/>
</xsl:template>

Code-Beispiel: kap01/1.16.11/adressen.xsl (Auszug).

Eine funktional gleiche Template-Regel ist mit XPath 2.0 wesentlich kompakter formulierbar, kann aber von einem älteren Prozessor nicht verarbeitet wer­den:

<!-- neue Methode (nur in XSLT 2.0 einsetzbar): -->
<xsl:template match="anschrift">
  <xsl:value-of select="(strasse, nr, ',', plz, ort)"/>
</xsl:template>

Code-Beispiel: kap01/1.16.11/adressen-xpath2.xsl (Auszug).

Welche Herangehensweise Sie als intuitiver empfinden, ist Geschmacksache. Im zweiten Fall wird die Arbeit eigentlich von XPath übernommen. Einen XPath-Ausdruck können Sie, was noch öfter zu sehen sein wird, funktional durchaus gleichwertig zu XSLT-Instruktionen verwenden. Auch Literale, die man nach alter Methode als Textliterale oder in xsl:text realisiert, werden klammheimlich als Teil der XPath-Sequenz übergeben. Der erforderliche Quell­text ist hier deshalb um Faktor vier verkürzt. (Anmerkung: Im Mittel dürfte die Einsparung derart groß nicht sein. Realistischer mögen rund 30% weniger Quelltext beim Ersatz von XSLT 1.0/XPath 1.0-Konstruktionen durch entspre­chend gleichwertige aus XSLT 2.0 bzw. XPath 2.0 sein.)

Auch wenn XSLT-Instruktionen durch XPath-Ausdrücke quasi ersetzt werden können, so hat dies seinen Preis. Auf die Problematik einer Modifikation eines allein durch XPath erzielten Ergebnisses wurde oben bereits hingewiesen. So könnten beispielsweise in der ersten Template-Variante zusätzlich benötigte Ele­mente in Form von Literal Result Elements einfach eingefügt werden. Dies kann, da ein XSLT-Style­sheet im Grunde ein normales XML-Dokument darstellt, auch mittels XSLT selbst erfolgen: Dies ist der Vorteil der »wortreicheren« XSLT-orientierten Vorgehens­weise.

Ein XPath-Ausdruck hingegen hat String-Charakter. Er kann zwar gegebenenfalls ebenso, auch mittels XSLT, bearbeitet und modifiziert werden, jedoch erfor­dert dies wesentlich mehr Aufwand. Im Gegenzug können Stylesheets, die sich komplexerer XPath-Ausdrücke bedienen, sehr viel kompakter ausfallen.

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Galileo Press, Rheinwerkallee 4, 53227 Bonn