Einen XSLT Prozessor hat jeder Browser eingebaut. Es war mal sehr populär, Webseiten als XML auszuliefern Anwendungsgebiete XML Webseiten und mittels XSLT zu layouten. U.a. wegen des exzessiven Einsatzes von JavaScript (auch inline), hat sich diese Idee nie vollständig durchgesetzt. Schliesslich wurde XHTML spezifiziert und jetzt gibt es HTML5.
Betrachten wir das folgende XML Beispiel:
<?xml version="1.0" encoding="UTF-8"?> <document> <title>Das ultimative Zwei-Kapitel Dokument</title> <chapter> <title>Kapitel 1</title> <intro>In Kapitel 1 wird kurz gesagt was Sache ist.</intro> <content>Um es kurz zu machen, wie der Hase läuft steht in Kapitel 2.</content> </chapter> <chapter> <title>Kapitel 2</title> <intro>Hier wird erklärt, wie der Hase läuft.</intro> <content>Im Prinzip ist es ganz einfach.</content> </chapter> </document>Plain Text
Ohne XSLT Stylesheet Zuweisung wird der Browser eine Datei mit diesem Inhalt als eingerücktes XML anzeigen - oder die Tags einfach ignorieren und den Textinhalt in einer Zeile darstellen. Fügt man eine Processing Instruction XML Konstrukte Processing Instruction am Anfang ein, wird ein XSLT Stylesheet vom Browser herangezogen, und vor der Darstellung im Browser wird die so deklarierte XML Transformation ausgeführt:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="formatiermich.xsl" ?> <document> <title>Das ultimative Zwei-Kapitel Dokument</title> <chapter> [...]Plain Text
Das XML kann nun im Browser geöffnet werden. Alles wird schön formatiert angezeigt...
<?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <xsl:apply-templates/> </html> </xsl:template> <xsl:template match="document"> <body> <xsl:apply-templates/> </body> </xsl:template> <xsl:template match="document/title"> <h1> <xsl:apply-templates/> </h1> </xsl:template> <xsl:template match="chapter"> <div class="chapter"> <xsl:apply-templates/> </div> </xsl:template> <xsl:template match="chapter/title"> <h2> <xsl:apply-templates/> </h2> </xsl:template> <xsl:template match="chapter/intro"> <div class="intro"> <i><xsl:apply-templates/></i> </div> </xsl:template> <xsl:template match="chapter/content"> <p><xsl:apply-templates/></p> </xsl:template> </xsl:stylesheet>Plain Text
Die Processing Instruction hat keinen Einfluss auf den XML Inhalt und wird in einer anderen Eingabeverarbeitung nicht herangezogen.