In diesem Artikel
Was ist XPath?
XPath (XML Path Language) ist eine W3C-Standardabfragesprache zum Auswählen von Knoten aus XML-Dokumenten. Sie verwendet eine pfadähnliche Syntax, um durch die hierarchische Struktur eines XML-Baums zu navigieren und Elemente, Attribute und Textknoten anhand ihrer Position, ihres Namens oder ihres Werts auszuwählen.
XPath ist keine eigenständige Technologie – sie ist in andere Standards wie XSLT, XQuery und DOM-APIs eingebettet. Jeder moderne Browser unterstützt XPath zum Abfragen von HTML-Dokumenten, und Werkzeuge wie Selenium, Scrapy und lxml nutzen XPath-Ausdrücke intensiv für Web-Scraping und automatisiertes Testen.
So funktionieren XPath-Abfragen
Ein XPath-Ausdruck navigiert durch den Dokumentbaum mithilfe von Achsen (Richtungen), Knotentests (Filtern) und Prädikaten (Bedingungen). Wer diese drei Konzepte versteht, kann jede beliebige Abfrage konstruieren.
- Achsen und Pfade – / wählt ab der Wurzel aus, // wählt Nachfahren an beliebiger Stelle, .. wechselt zum Elternknoten, und benannte Achsen wie following-sibling:: navigieren relativ zum aktuellen Knoten
- Prädikate und Filter – eckige Klammern [] fügen Bedingungen hinzu: //book[price>30] wählt Bücher mit einem Preis über 30, während //div[@class='main'] divs mit einem bestimmten class-Attribut auswählt
- Funktionen und Operatoren – XPath bietet integrierte Funktionen wie contains(), starts-with(), normalize-space() und count() zur Zeichenkettenmanipulation, zum Vergleichen und zum Zählen von Knoten
Kostenlos testen – keine Registrierung erforderlich
Eine XPath-Abfrage testen →Wann Sie XPath verwenden sollten
XPath ist unverzichtbar, wann immer Sie programmatisch bestimmte Daten aus XML- oder HTML-Dokumenten extrahieren müssen.
- Web-Scraping – extrahieren Sie Produktpreise, Artikeltitel oder Links aus Webseiten mithilfe von XPath-Ausdrücken in Werkzeugen wie Scrapy, Puppeteer oder Browser-Entwicklerkonsolen
- XML-Konfiguration – fragen und validieren Sie komplexe Konfigurationsdateien wie Maven pom.xml, Android-Manifeste oder Spring-XML-Kontexte, um bestimmte Einstellungen oder Abhängigkeiten zu finden
- XSLT-Transformationen – wählen Sie Knoten für die Transformation in XSLT-Stylesheets aus, die vollständig auf XPath-Ausdrücke angewiesen sind, um XML-Elemente in andere Ausgabeformate abzugleichen und zu verarbeiten
Häufig gestellte Fragen
Wann sollte ich XPath statt CSS-Selektoren verwenden?
CSS-Selektoren sind einfacher und schneller für die grundlegende Elementauswahl nach Tag, Klasse oder ID. Wählen Sie XPath, wenn Sie nach Textinhalt auswählen (//a[contains(text(),'Login')]), zu Elternknoten nach oben navigieren, komplexe Prädikate nutzen oder mit XML-Dokumenten (nicht HTML) arbeiten müssen. In XSLT- und XQuery-Kontexten ist XPath ohnehin erforderlich.
Was hat sich zwischen XPath 1.0 und 2.0 geändert?
XPath 2.0 hat ein reichhaltigeres Typsystem (Datumsangaben, Sequenzen, reguläre Ausdrücke), bedingte Ausdrücke (if/then/else), quantifizierte Ausdrücke (some/every) und Bereichsausdrücke hinzugefügt. Die meisten Browser und Scraping-Werkzeuge unterstützen jedoch nur XPath 1.0. Nutzen Sie XPath-2.0-Funktionen in serverseitigen Werkzeugen wie Saxon oder beim Arbeiten mit XSLT 2.0.
Wie gehe ich in XPath mit XML-Namespaces um?
Elemente mit Namespace erfordern eine Präfixzuordnung. In den meisten APIs registrieren Sie ein Namespace-Präfix (z. B. ns='http://example.com') und fragen dann mit diesem Präfix ab: //ns:book/ns:title. Ohne registrierten Namespace passt //book nicht auf Elemente in einem Namespace, selbst wenn der lokale Name 'book' lautet. Manche Werkzeuge unterstützen local-name() als Ausweichlösung: //*[local-name()='book'].