Der Stringwert eines Elementknotens

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 1.)

Für einen auf dem Dokumentknoten liegenden Kontext hat die Instruktion

<xsl:value-of select="gruss"/>

für diese Struktur

<gruss>
  <hallo>Hallo Welt! Dies ist XSLT.</hallo>
</gruss>

ein Ergebnis erzielt. Keines jedoch für

<hallo>
  <gruss>Hallo Welt! Dies ist XSLT.</gruss>
</hallo>

Letzteres ist klar: Es ist zwar ein Element <gruss> vorhanden, dieses erfüllt jedoch nicht die Forderung des Ausdrucks child::gruss, direkt unterhalb des Kontextes zu liegen, »dazwischen« befindet sich ja das Element <hallo>.

Im ersten Fall liegt <gruss> zwar an der geforderten Position und es wird auch der innen liegenden Textknoten erreicht. Dies jedoch, obwohl jener nicht direkt in <gruss> liegt, sondern eine Ebene weiter innen im Element <hallo>. Das dazwischen liegende Element wird offensichtlich ignoriert.

Ein anderes Beispiel zur Veranschaulichung:

<a>Noch<b> ein <c>anderes</c></b> Stringwertbeispiel.</a>

       ↓        ↓      ↓                      ↓

       Noch   ein     anderes         Stringwertbeispiel.

Der Stringwert von <a> besteht aus der Folge aller Textknoten (Anmerkung: De facto wird der betrachtete Dokumentzweig geplättet, wobei die Elementmarken verworfen werden.), die zur Aus­gabe zu einem einzigen Textknoten zusammengefasst werden. Es entsteht die Zeichenkette »Noch ein anderes Stringwertbeispiel.« Der Stringwert von <b> wäre demnach »ein anderes«, der von <c> wäre »anderes«.

Nebenbei: Es werden für den Stringwert eines Elements nur in diesem enthal­tene Textknoten, nicht aber die Werte von möglicherweise vorhandenen Kom­mentar- oder gar Attributknoten berücksichtigt. Diese besitzen für sich betrach­tet jedoch durchaus einen Stringwert.

Der Stringwert des Elements <person> im Fall von

<person nachname="Meier" vorname="Peter"/>

ist also der leere String. Trotzdem ist es selbstverständlich möglich, mittels XPath an einen Attributwert heranzukommen.

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Galileo Press, Rheinwerkallee 4, 53227 Bonn