Skip to main content
CheckTown
Dev Tools

XPath Tester: XML-documenten bevragen met XPath

Gepubliceerd 6 min lezen
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'].

Gerelateerde Tools