<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
href
Dieses Attribut definiert den URI des zu importierenden Stylesheets.

 
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.