xpath

XPath ist eine Abfragesprache, die es ermöglicht, in XML-Strukturen (Bäumen) zu navigieren. Auf diese Weise lassen sich Daten aus XML-Dokumenten suchen und extrahieren. Die Abfragesprache wird heute häufig für Webanalyse-Tools verwendet, die XML-Daten von Websites beziehen.

Hintergrund[Bearbeiten]

Der XML-Standard wird heute für die meisten Websites weltweit genutzt. Um die auf diesen Seiten verwendeten Daten abzufragen und zu durchsuchen, wurde eine effiziente Suche nötig. Mit XPath wurde schließlich eine Abfragesprache dafür entwickelt. Schon Ende der 1990er-Jahre wurde XPath als Version 1.0 vom W3C als der der Extensible Stylesheet Language standardisiert. XPath arbeitet auf der Basis einer Baumstruktur, mit Hilfe derer die in einem XML-Dokument verarbeiteten Daten abgebildet werden können. 2007 erschien Version 2.0 von XPath, die sich durch eine Erweiterung des Datenmodells von der Vorgängerversion unterscheidet. Darüber hinaus erhielt XPath 2.0 eine erneuerte Funktionsbibliothek. Diese unterstützt nun neue Operatoren sowie weitere Datentypen als auch Konstrukte für Ausdrücke. XPath wird für heute auch für weitere Standards wie XQuery oder XSLT verwendet.

Bestandteile[Bearbeiten]

Damit Anwender mit XPath in einem XML-Baum navigieren können, müssen die vorhandenen Daten zunächst gefunden werden. XPath geht in diesem Fall schrittweise vor. Die Syntax besteht dabei aus einer Mischung aus Pfadausdrücken sowie einfachen Ausdrücken einer Programmiersprache. Für die Navigation innerhalb des XML-Dokuments können zwei verschiedene Locations Paths verwendet werden.

  • relativer Path: Hier werden mehrere Einzelschritte von links nach rechts durch ein „/“ miteinander verknüpft. Jeder Einzelschritt wählt relativ zum Kontext einen Startknoten aus, der aus einer Menge an Knoten bestehen kann. Die Ergebnisse jedes Schritts können anschließend zusammengefügt werden und ergeben eine Vereinigungsmenge.
  • absoluter Path: Dieser Pfad besteht aus einem „/“, dem ein relativer Pfad folgt, wobei „/“ den Wurzelknoten bestimmt.

600x400-xpath-01.png

Jeder Location Path ist eine Sequenz von chronologisch aufeinanderfolgenden Knoten nach dem Schema schritt1/schritt2/schrittN. Kein Knoten kommt in der Reihe doppelt vor. Jeder Knoten wird schließlich als Kontext für den folgenden Schritt (Location Step) verwendet. Ein einzelner Kontext kann aus einem Knoten, einer Position, einer Größe sowie verschiedenen variablen Bindungen bestehen und kann Funktionen sowie Namensraum-Deklarationen enthalten. Wenn ein Pfad mit „/“ startet, wird der initiale Knoten zum Wurzelknoten.

Alle einzelnen Location Steps werden in Form eines Ergebnisknotens als Baum-/Knotenmodell ausgegeben. Diese Zeichenketten mit der speziellen Syntax von XPath helfen schließlich dabei, Teilstrukturen innerhalb eines XML-Dokuments zu adressieren. Innerhalb des Baummodells gibt es bei XPath verschiedene Typen von Knoten.

  • Wurzelknoten
  • Elementknoten
  • Attributknoten
  • Namensraumknoten
  • Verarbeitungsknoten
  • Kommentarknoten
  • Textknoten

Die Anordnung der Knoten wird auch als Dokumentenreihenfolge bezeichnet.


Ein Location Step wird aus drei Bestandteilen gebildet, einer Achse, einem Knotentest sowie Ausdrücken. Die Form lautet:

achse:: knotentext [expr 1] [expr 2]


  • Achse: Die Abfragesprache XPath kann mit 12 unterschiedlichen Achsen arbeiten. Jede Achse ist dabei eine Sequenz an Knoten und wird relativ zum Kontextknoten ausgewertet. Mögliche Achsen sind „child“, „self“ oder auch „ancestor“. Je nachdem, welcher Achsentyp verwendet wird, wird die Achse rückwärts, vorwärts oder in Abhängigkeit von der Implementierung ausgelesen.[1]
  • Knoten: XPath kennt drei verschiedene Knotentypen. Der Element-Knoten entspricht im Baum genau einem Element; der Text-Knoten entspricht dem im XML-Baum verwendeten Text; der Attribut-Knoten repräsentiert ein Attribut. Die Reihenfolge der Knoten folgt chronologisch der Anordnung der Zeichen im XML-Dokument. Wird mit XPath in einem Dokument gesucht, wird jeder Knoten einzeln abgearbeitet, also zuerst die Kinder und danach die Kindeskinder, bis ein neuer Knoten verarbeitet wird.
  • Ausdrücke: Dabei handelt es sich um Ausdrücke, die auf den Kontext anzuwenden sind. Dies können Zahlen, Variablen-Referenzen, Rechenoperatoren, Vergleiche oder Boolesche Operatoren sein.

Vorteile[Bearbeiten]

Gängige Suchmechanismen, welche die Suche in Dateisystemen ermöglichen, eignen sich kaum zum Verarbeiten von XML-Dokumenten. Dies liegt zum Teil daran, dass jene Methoden nicht zwischen Markup oder Inhalten unterscheiden können. Zudem bieten diese Mechanismen nicht die Möglichkeit XML-Dokumente nach spezifischen Attributen zu durchsuchen. Mit XPath stehen Anwendern alle Möglichkeiten, zum Durchsuchen und Adressieren von XML-Daten offen, von einfachen bis zu hochkomplexen Lösungen.

Nutzen für SEO[Bearbeiten]

XPath wird für die Webanalyse verwendet. Auf diese Weise wird XPath zu einer zentralen Technik, wenn es um die Auswertung von wichtigen OnPage-Faktoren von Websites oder Daten zu Keyword-Platzierungen geht. So lassen sich zum Beispiel mit entsprechenden Code-Zeilen Meta-Angaben wie Meta-Title und Meta-Description von einer Website oder vielen Websites auf einmal auslesen. Ebenso kann XPath zum Beispiel dabei helfen, Keyword-Rankings in den SERPs zu ermitteln, ohne die Platzierungen manuell abrufen zu müssen. XPath bietet hier viele verschiedene Konfigurationsmöglichkeiten. So können bei der Abfrage von Rankingpositionen auch Werbeanzeigen ausgeschlossen werden, die Suche kann nur auf bestimmte Länder oder die Top10 eingegrenzt werden.

Einzelnachweise[Bearbeiten]

  1. DOM - XPath, Beispiele S.20 wwwdh.cs.fau.de Abgerufen am 24.09.2015

Weblinks[Bearbeiten]