Strings

(Auszug aus "XSLT Kochbuch" von Sal Mangano)

"I believe everybody in the world should have guns.
Citizens should have bazookas and rocket launchers too.
I believe that all citizens should have their weapons of choice.
However, I also believe that only I should have the ammunition.
Because frankly, I wouldn't trust the rest of the goobers with anything
more dangerous than [a] string."

Scott Adams

Einleitung

Wenn es um das Manipulieren von Strings geht, fehlen XSLT 1.0 ganz einfach die starken Geschütze, die Perl auffährt. XSLT ist eine Sprache, die für die Verarbeitung von XML-Markup optimiert wurde, nicht von Strings. Da XML jedoch einfach eine strukturierte Form von Text darstellt, ist eine Stringverarbeitung in allen (bis auf die einfachsten Transformationsprobleme) unumgänglich. Leider besitzt XSLT 1.0 nur neun Standardfunktionen zur Stringverarbeitung. Java dagegen kennt etwa zwei Dutzend, und Perl, der unbestrittene König der modernen Textverarbeitungssprachen, besitzt mehrere Dutzend sowie eine hoch entwickelte Funktionalität zur Verarbeitung regulärer Ausdrücke.

Mit dem Aufkommen von XSLT 2.0-Implementierungen können XSLT-Entwickler auch ohne Neid auf Perl-Strings weiterkommen. XPath 2.0 bietet nun 20 Funktionen, die mit der Stringverarbeitung zu tun haben. Die Funktionen beinhalten auch Unterstützung für reguläre Ausdrücke. Darüber hinaus besitzt XSLT 2.0 Möglichkeiten, um unstrukturierten Text mittels regulärer Ausdrücke zu parsen, sodass dieser in richtiges XML umgewandelt werden kann.

XSLT 1.0-Programmierer haben zwei Möglichkeiten, wenn sie eine aufwändigere Stringverarbeitung vornehmen müssen. Zum einen können sie auf externe Funktionen zurückgreifen, die in Java oder einer anderen Sprache geschrieben wurden, die von ihrem XSLT-Prozessor unterstützt wird. Das kann außerordentlich bequem sein, wenn Portabilität kein Thema ist und eine richtig leistungsfähige Stringmanipulation gebraucht wird. Zum anderen können sie die erweiterte Funktionalität zum Umgang mit Strings direkt in XSLT implementieren. Dieses Kapitel zeigt, dass ein Teil der allgemeinen Stringmanipulationen mit den Mitteln von XSLT 1.0 erledigt werden kann. Außerdem sehen Sie, wie dieselben Probleme einfacher in XSLT 2.0 gelöst werden.

Sie können erweiterte Stringfunktionen in XSLT 1.0 implementieren, indem Sie die Möglichkeiten der nativen Stringfunktionen kombinieren und auf Rekursion zurückgreifen, die integraler Bestandteil aller aufwändigeren Anwendungen von XSLT ist. Um genau zu sein, ist Rekursion eine so wichtige Technik in XSLT, dass es sich auch dann lohnt, einige dieser Rezepte anzuschauen, wenn Sie eigentlich nicht vorhaben, Ihren Stringverarbeitungsbedarf direkt in XSLT zu implementieren.

Dieses Buch verweist außerdem auf die ausgezeichnete Arbeit von EXSLT.org, einer Gemeinschaftsinitiative, die dabei hilft, Erweiterungen der Sprache XSLT zu standardisieren. Sie können ja einmal einen Blick auf deren Website werfen.

Anmerkung:
Wenn ich eine Lösung in XSLT 2.0 implementiere, die länger als eine Zeile Code ist, greife ich auf die neue Fähigkeit von XSLT 2.0 zurück, erstklassige XPath-Funktionen in XSLT zu schreiben. Im Gegensatz dazu verwenden die 1.0-Lösungen benannte Templates, die Sie nur über xsl:call-template aufrufen können.

  

  

<< zurück vor >>

 

 

 

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

Copyright © 2006 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT Kochbuch" 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.

O'Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de