In dit artikel
Wat is XPath?
XPath (XML Path Language) is een W3C-standaard querytaal voor het selecteren van knooppunten uit XML-documenten. Het gebruikt een padachtige syntaxis om door de hiërarchische structuur van een XML-boom te navigeren, waarbij elementen, attributen en tekstknooppunten worden geselecteerd op basis van hun positie, naam of waarde.
XPath is geen zelfstandige technologie -- het is ingebed in andere standaarden zoals XSLT, XQuery en DOM API's. Alle moderne browsers ondersteunen XPath voor het bevragen van HTML-documenten, en tools zoals Selenium, Scrapy en lxml gebruiken XPath-expressies uitgebreid voor webscraping en geautomatiseerd testen.
Hoe XPath-query's werken
Een XPath-expressie navigeert door de documentboom met behulp van assen (richtingen), knooppunttests (filters) en predicaten (voorwaarden). Het begrijpen van deze drie concepten stelt u in staat elke query samen te stellen.
- Assen en paden -- / selecteert vanaf de root, // selecteert afstammelingen overal, .. gaat naar het bovenliggende element, en benoemde assen zoals following-sibling:: navigeren relatief aan het huidige knooppunt
- Predicaten en filters -- vierkante haken [] voegen voorwaarden toe: //book[price>30] selecteert boeken met een prijs boven 30, terwijl //div[@class='main'] div's selecteert met een specifiek class-attribuut
- Functies en operatoren -- XPath biedt ingebouwde functies zoals contains(), starts-with(), normalize-space() en count() voor stringmanipulatie, vergelijking en knooppunttelling
Probeer gratis — geen aanmelding vereist
Een XPath-query testen →Wanneer XPath gebruiken
XPath is essentieel wanneer u programmatisch specifieke gegevens uit XML- of HTML-documenten moet extraheren.
- Webscraping -- extraheer productprijzen, artikeltitels of links van webpagina's met XPath-expressies in tools zoals Scrapy, Puppeteer of browserdeveloperconsoles
- XML-configuratie -- bevraag en valideer complexe configuratiebestanden zoals Maven pom.xml, Android-manifesten of Spring XML-contexten om specifieke instellingen of afhankelijkheden te vinden
- XSLT-transformaties -- selecteer knooppunten voor transformatie in XSLT-stylesheets, die volledig afhankelijk zijn van XPath-expressies om XML-elementen te matchen en verwerken naar verschillende uitvoerformaten
Veelgestelde vragen
Wanneer moet ik XPath gebruiken in plaats van CSS-selectors?
CSS-selectors zijn eenvoudiger en sneller voor basale elementselectie op tag, class of ID. Kies XPath wanneer u moet selecteren op tekstinhoud (//a[contains(text(),'Inloggen')]), omhoog navigeren naar bovenliggende knooppunten, complexe predicaten gebruiken of werken met XML-documenten (niet HTML). XPath is ook vereist in XSLT- en XQuery-contexten.
Wat is er veranderd tussen XPath 1.0 en 2.0?
XPath 2.0 voegde een rijker typesysteem toe (datums, sequenties, reguliere expressies), conditionele expressies (if/then/else), gekwantificeerde expressies (some/every) en bereikexpressies. De meeste browsers en scrapingtools ondersteunen echter alleen XPath 1.0. Gebruik XPath 2.0-functies in server-side tools zoals Saxon of bij het werken met XSLT 2.0.
Hoe ga ik om met XML-namespaces in XPath?
Elementen met namespaces vereisen een prefixmapping. In de meeste API's registreert u een namespace-prefix (bijv. ns='http://example.com') en bevraagt u vervolgens met dat prefix: //ns:book/ns:title. Zonder het registreren van de namespace zal //book geen elementen in een namespace matchen, zelfs als de lokale naam 'book' is. Sommige tools ondersteunen local-name() als workaround: //*[local-name()='book'].