<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 |
|
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!
Kopieren Sie den oben stehenden Code, und speichern Sie ihn in entsprechenden Dateien auf dem lokalen Laufwerk.
Starten Sie die XSL-Transformation, indem Sie das Kommandozeilendienstprogramm zur Transformation (msxsl.exe) an einer Eingabeaufforderung folgendermaßen aufrufen:
msxsl source.xml trans.xsl
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.