Knotentyptests
Um andere oder zusätzliche Knotentypen neben Elementknoten auswählen zu können, verwenden Sie einen Knotentyptest. Bei der Ausführung eines Knotentyptests wird der Basisknotentyp für die angegebene Achse überschrieben. descendant::text() sucht beispielsweise nach allen Textknoten, die vom Kontextknoten abstammen, selbst wenn der Basisknotentyp für die Nachfolgerachse element ist.
Es sind vier Knotentyptests verfügbar. Diese sind in der folgenden Tabelle aufgelistet.
Knotentyp |
Rückgabe |
Beispiel |
---|---|---|
comment() |
True für einen Kommentarknoten. |
following::comment() wählt alle Kommentarknoten aus, die nach dem Kontextknoten aufgeführt werden. |
node() |
True für einen Knoten von einem beliebigen Typ. |
preceding::node() wählt alle Knoten aus, die vor dem Kontextknoten aufgeführt werden. |
processing-instruction() |
True für einen Verarbeitungsanweisungsknoten. |
self::processing instruction() wählt alle Verarbeitungsanweisungsknoten innerhalb des Kontextknotens aus. |
text() |
True für einen Textknoten. |
child::text() wählt die Textknoten aus, die untergeordnete Knoten des Kontextknotens sind. |
Hinweis
Der processing-instruction()-Test kann über ein Argument verfügen, das ein Literal darstellt. In diesem Fall wird True für jede Verarbeitungsanweisung zurückgegeben, deren Name dem Wert des Literals entspricht.Weitere Informationen finden Sie unter Zielgerichtete Tests für Verarbeitungsanweisungen.
Die Klammern () am Ende des Knotentyptests sind zwingend erforderlich. Ihr Vorhandensein schließt sämtliche Probleme aus, die entstehen können, wenn das Quelldokument über Knoten mit den Namen comment, text, processing-instruction oder node verfügt. Wenn eine XPath-Anwendung diese doppelten Klammern findet, erkennt sie, dass es sich um einen Knotentyptest handelt und nicht um einen Namenstest für Knoten mit diesem Namen. Ebenso handelt es sich bei Knotentyptests nicht um XPath-Funktionen, deren Verweise auch leere oder sonstige Klammern enthalten.