<xsl:import> | |
Diese Anweisung gestattet den Import der Vorlagen aus einem anderen XSLT-Stylesheet. Im Gegensatz zu <xsl:include> haben alle Vorlagen, die mit <xsl:import> importiert werden, eine niedrigere Priorität als die Vorlagen in dem Stylesheet, in das importiert wird. Ein weiterer Unterschied ist, dass <xsl:include> an beliebiger Stelle in einem Stylesheet vorkommen kann, während <xsl:import> gleich am Anfang erscheinen muss. | |
Kategorie | |
Element der obersten Ebene |
|
Obligatorische Attribute | |
|
|
Optionale Attribute | |
Keine |
|
Inhalt | |
Keiner. <xsl:import> ist ein leeres Element. |
|
Übergeordnetes Element | |
<xsl:import> ist ein Element der obersten Ebene und kann nur dem Element <xsl:stylesheet> untergeordnet werden. |
|
Definition | |
XSLT-Abschnitt 2.6.2, Stylesheet-Import |
|
Beispiel | |
Hier ein simples Stylesheet, das importiert werden soll: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:variable name="newline"> <xsl:text> </xsl:text> </xsl:variable> <xsl:template match="/"> <xsl:value-of select="$newline"/> <xsl:apply-templates select="list/title"/> <xsl:apply-templates select="list/listitem"/> </xsl:template> <xsl:template match="title"> <xsl:value-of select="."/> <xsl:text>: </xsl:text> <xsl:value-of select="$newline"/> <xsl:value-of select="$newline"/> </xsl:template> <xsl:template match="listitem"> <xsl:text>HERE IS LISTITEM NUMBER </xsl:text> <xsl:value-of select="position()"/> <xsl:text>: </xsl:text> <xsl:value-of select="."/> <xsl:value-of select="$newline"/> </xsl:template> </xsl:stylesheet> Sowohl dieses Stylesheet als auch das importierende werden mit dem folgenden XML-Dokument getestet: <?xml version="1.0"?> <list> <title>A few of my favorite albums</title> <listitem>A Love Supreme</listitem> <listitem>Beat Crazy</listitem> <listitem>Here Come the Warm Jets</listitem> <listitem>Kind of Blue</listitem> <listitem>London Calling</listitem> <listitem>Remain in Light</listitem> <listitem>The Joshua Tree</listitem> <listitem>The Indestructible Beat of Soweto</listitem> </list> Hier das Ergebnis, wenn Sie das XML-Ausgangsdokument mit diesem Stylesheet verarbeiten: A few of my favorite albums: HERE IS LISTITEM NUMBER 1: A Love Supreme HERE IS LISTITEM NUMBER 2: Beat Crazy HERE IS LISTITEM NUMBER 3: Here Come the Warm Jets HERE IS LISTITEM NUMBER 4: Kind of Blue HERE IS LISTITEM NUMBER 5: London Calling HERE IS LISTITEM NUMBER 6: Remain in Light HERE IS LISTITEM NUMBER 7: The Joshua Tree HERE IS LISTITEM NUMBER 8: The Indestructible Beat of Soweto Jetzt wird die Anweisung <xsl:import> in einem anderen Stylesheet verwendet: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="listitem.xsl"/> <xsl:output method="text"/> <xsl:variable name="newline"> <xsl:text> </xsl:text> </xsl:variable> <xsl:template match="/"> <xsl:value-of select="$newline"/> <xsl:apply-templates select="list/title"/> <xsl:apply-templates select="list/listitem"/> </xsl:template> <xsl:template match="listitem"> <xsl:value-of select="position()"/> <xsl:text>. </xsl:text> <xsl:value-of select="."/> <xsl:value-of select="$newline"/> </xsl:template> </xsl:stylesheet> Hier die vom zweiten Stylesheet erzeugten Ergebnisse: A few of my favorite albums: 1. A Love Supreme 2. Beat Crazy 3. Here Come the Warm Jets 4. Kind of Blue 5. London Calling 6. Remain in Light 7. The Joshua Tree 8. The Indestructible Beat of Soweto Beachten Sie, dass beide Stylesheets eine Vorlage mit match="listitem" hatten. Die Vorlage im importierten Stylesheet hat eine niedrigere Priorität und wird daher nicht verwendet. Nur das importierte Stylesheet hat eine Vorlage mit match="title", daher wird die importierte Vorlage auf das Element <title> angewendet. |