<xsl:preserve-space>-Element

Behält Textknoten bei, die nur Leerraum enthalten, die in diesen Elementen enthalten sein können, wie vom elements-Attribut angegeben.

<xsl:preserve-space
  elements = tokens />

Attribute

  • elements
    Dies ist ein erforderliches Attribut. Der Wert ist eine durch Leerraum getrennte Liste von Namenstoken für die Knoten, deren Leerraum-Textknoten beibehalten werden müssen.

Elementinformationen

Anzahl der Vorkommen

Unbegrenzt

Übergeordnete Elemente

xsl:stylesheet, xsl:transform

Untergeordnete Elemente

(Keine untergeordneten Elemente)

Hinweise

Das <xsl:preserve-space>-Element behält Leerraum-Textknoten in den angegebenen Elementen bei. Dies wirkt sich nicht auf Leerraumzeichen in Textknoten aus, die sowohl Leerraumzeichen als auch andere Zeichen enthalten. Die Beibehaltung von Leerraum-Textknoten bedeutet an dieser Stelle, dass die Knoten aus dem Quelldokument im Ergebnisdokument erhalten bleiben. <xsl:strip-space> bewirkt das Gegenteil. Die Leerraum-Textknoten werden in den angegebenen Knoten entfernt.

Standardmäßig werden alle Leerraum-Textknoten beibehalten. Wenn ein Elementname einem Namenstest in einem <xsl:strip-space>-Element entspricht, wird er aus der Gruppe der Elementnamen entfernt, für die Leerraum beibehalten werden soll. Wenn ein Elementname einem Namenstest in einem <xsl:preserve-space>-Element entspricht, wird er wieder der Gruppe von Elementnamen hinzugefügt, für die Leerraum beibehalten werden soll.

Weitere Informationen finden Sie unter "Whitespace Stripping", Abschnitt 3.4 der XSLT-Empfehlung der W3C unter www.w3.org/TR/xslt (nur in englischer Sprache).

Beispiel

Im folgenden Beispiel wird erläutert, welche Auswirkungen das Beibehalten und Entfernen von Leerraum-Textknoten mithilfe von <xsl:preserve-space> und <xsl:strip-space> hat.

XML-Datei (source.xml)

XSLT-Datei (trans.xsl)

Probieren Sie es aus!

  1. Kopieren Sie den oben stehenden Code, und speichern Sie ihn in entsprechenden Dateien auf dem lokalen Laufwerk.

  2. Starten Sie die XSL-Transformation, indem Sie das Kommandozeilendienstprogramm zur Transformation (msxsl.exe) an einer Eingabeaufforderung folgendermaßen aufrufen:

    msxsl source.xml trans.xsl

    ms256144.Important(de-de,VS.100).gif Hinweis:
    Starten Sie die Transformation nicht aus Internet Explorer.Der Browser führt Operationen zum Entfernen von Leerraum aus, die nicht mit dem XSLT-Spezifikationen kompatibel sind.Dies kann dazu führen, dass die XLST-Transformation nicht erwartungsgemäß erfolgt.

Ausgabe

Dies ist die Standardausgabe:

code elements:

code # 1

has 1 text().

"---"

code # 2

has 1 text().

"--;"

code # 3

has 1 text().

"NThis-is-a-Tsample-codeTNTN"

text elements:

text # 1

has 0 text().

""

text # 2

has 1 text().

"--;"

text # 3

has 1 text().

"NThis-is-a-Tsample-textTNTN"

Beachten Sie, dass die Transformation einen Textknoten für das erste <code>-Element zurückgibt. Es wird jedoch kein Textknoten für das erste <text>-Element zurückgegeben. Dies liegt daran, dass diese Elemente beide über einen Leerraum-Textknoten verfügen, der in <code> erhalten, in <text> jedoch entfernt wird. Dies entspricht der <xsl:preserve-space>-Anweisung und der <xsl:strip-space>-Anweisung, die am Anfang des Stylesheets aufgeführt sind. Das zweite und das dritte Element zeigen jeweils, dass diese Anweisungen keine Auswirkungen auf Textknoten haben, bei denen es sich nicht um Leerraum-Textknoten handelt.

Siehe auch

Verweis

<xsl:strip-space>-Element