XPath-tester
XML- of HTML-document
Plak XML of HTML met maximaal 1.000.000 tekens. De evaluatie gebeurt in deze browser met XPath 1.0.
Een absolute of relatieve XPath 1.0-expressie. Prefixen die in het document zijn gedeclareerd, worden automatisch geregistreerd; een standaardnamespace is beschikbaar onder het prefix d.
XPath evaluerenXPath schrijven voor scraping of XSLT is gokken en bijstellen zonder live proefomgeving. Deze tester neemt je XML of HTML in het ene vak en je expressie in het andere, evalueert XPath 1.0 met de engine van je eigen browser en toont elke gevonden node met soort, attributen, tekstinhoud en geserialiseerde markup. Scalaire expressies zoals count(//book) geven hun waarde direct terug, en namespace-prefixen die in het document zijn gedeclareerd worden automatisch voor je geregistreerd. Alles draait in je browser: het document wordt nooit geüpload.
Zo test je een XPath-expressie
-
1
Plak XML of HTML
De automatische detectie schakelt over op soepel HTML-parsen zodra ze een HTML-doctype of -root ziet; je kunt de XML- of HTML-modus ook afdwingen.
-
2
Voer je XPath in
Absoluut (`/library/book`) of relatief (`//div[@class='card']`), elke XPath 1.0-expressie.
-
3
Evalueer
De XPath-engine van je browser voert de query lokaal uit; er wordt niets naar een server gestuurd.
-
4
Bekijk de resultaten
Elke match toont de soort node, de attributen, de ingekorte tekst en de geserialiseerde markup; er worden maximaal 200 matches getoond.
De basis van XPath 1.0
| Expressie | Wat het selecteert |
|---|---|
/books/book |
<book>-kinderen van de root <books> |
//book |
Elke <book> waar dan ook in het document |
//book[@id='42'] |
<book> met id-attribuut gelijk aan 42 |
//book[1] |
Eerste <book> per ouder (niet van het document) |
(//book)[1] |
Eerste <book> in het hele document |
//book[title='1984'] |
<book> waarvan de <title>-tekst “1984” is |
//book/@id |
id-attributen van alle <book>-elementen |
//book[position() > 1] |
Alle <book> behalve de eerste |
//book[last()] |
Laatste <book> per ouder |
Scalaire expressies werken ook: count(//book) geeft een getal terug, string(//title) een tekenreeks en boolean(//book[@id]) waar of onwaar. De tester toont die waarden direct in plaats van een lijst met nodes.
Veelgebruikte assen naast child
ancestor::, alle vooroudersfollowing-sibling::, broers en zussen na de huidige nodepreceding-sibling::, broers en zussen ervoordescendant::, alle nakomelingenattribute::(afkorting@), attributen van de huidige nodeparent::(afkorting..), het ouderelement
Eigenaardigheden van HTML
HTML is geen strikte XML, dus de tester parst het soepel met de HTML-parser van je browser in plaats van de strikte XML-parser. De HTML-modus wordt automatisch gedetecteerd via <!DOCTYPE html> of een <html>-root, en met de keuze voor de documentmodus kun je elk van beide modi afdwingen. In HTML-modus worden tag- en attribuutnamen in kleine letters gezet, schrijf je XPath dus in kleine letters: //div[@class], niet //DIV[@CLASS].
Namespaces
XML met namespaces vereist geregistreerde prefixen:
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/">
<item>
<content:encoded>...</content:encoded>
</item>
</rss>
De tester doorzoekt het document op xmlns-declaraties en registreert elk prefix automatisch, dus //content:encoded werkt meteen. Een standaardnamespace (een kale xmlns="...") heeft geen prefix in het document, dus de tester koppelt die aan het prefix d: selecteer <item>-elementen in een feed met standaardnamespace via //d:item. De geregistreerde namespaces staan naast de resultaten.
Wat deze tester niet evalueert
Browsers evalueren XPath 1.0, hetzelfde dialect dat de meeste scraping-stacks gebruiken. Functies uit XPath 2.0 en later, zoals matches(string, regex), tokenize(string, delimiter), for ... return-expressies en sequentie-operatoren, horen daar niet bij; je vindt ze in XSLT 2.0/3.0-toolchains. XPath 1.0 blijft de meest portabele keuze voor webscraping.
Testtips
- Begin breed en versmal. Eerst
//div, dan//div[@class], dan de specifieke class-waarde. - Controleer de namespace-declaraties. De meeste “waarom geeft mijn XPath niets terug?”-bugs zijn namespaces; kijk in de lijst met geregistreerde namespaces.
- Let op hoofdletters. XML is hoofdlettergevoelig. De HTML-modus zet namen in kleine letters.
- Test string() bij het uitpakken van tekst.
//p/text()enstring(//p)verschillen zodra er geneste markup is.
Veelgestelde vragen
Nee, alleen XPath. De meeste browsers ondersteunen beide via document.querySelectorAll (CSS) en document.evaluate (XPath). Gebruik wat voor de taak het duidelijkst is.
Bij het parsen van HTML worden tag- en attribuutnamen in kleine letters gezet. Zorg dat je XPath kleine letters gebruikt: //div[@class], niet //DIV[@CLASS]. Controleer ook de modus: XML afdwingen op slordige HTML mislukt met een parsefout, terwijl de HTML-modus het soepel parst.
Prefixen die in het document zijn gedeclareerd worden automatisch geregistreerd voor je expressie. Een standaardnamespace wordt gekoppeld aan het prefix d, dus //d:item selecteert <item>-elementen in een document met standaardnamespace. De actieve koppelingen staan bij de resultaten.
Nee. Het document en de expressie worden geëvalueerd door de XPath-engine van je eigen browser en worden niet naar onze server gestuurd, niet opgeslagen en niet aan het paginaadres toegevoegd; ze bestaan alleen in deze browsersessie zodat de weergave met meerdere stappen je resultaten kan tonen.
Gerelateerde tools
ASCII-tabelreferentie
Volledige ASCII-tabel van 0 tot 127 met decimale, hexadecimale, octale en binaire waarden en HTML-numerieke referentienotatie, inclusief control codes zoals NUL, LF en DEL.
HTML-tekenreferentie
Een doorzoekbare lijst met HTML-entiteiten, hun benoemde en numerieke codes, plus kopiëren met één klik voor speciale tekens en symbolen.
JSON naar PHP-array
Zet JSON om naar een PHP-array-literal met korte syntaxis, associatieve/geïndexeerde arrays en geneste structuren, klaar om in een .php-bestand te plakken.
Luhn-algoritme-checker
Controleer de creditcardnummer, IMEI, SIN en andere door Luhn beschermden nummers. Geef een resultaat terug (goed of fout) en toon elke stap van het verdubbelen en het berekenen van de controlesom aan.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
JavaScript-obfuscator
Obfusceer JavaScript met string-array-codering, hernoemen van variabelen, control-flow-flattening en injectie van dode code ter bescherming van de front-end.
Tool beschikbaar in andere talen
- Tester XPath [PL]
- Penguji XPath [ID]
- XPath テスター [JA]
- Công cụ kiểm tra XPath [VI]
- Probador de XPath [ES]
- เครื่องมือทดสอบ XPath [TH]
- XPath-testare [SV]
- أداة اختبار XPath [AR]
- Testador de XPath [PT]
- Testeur XPath [FR]
- XPath-Tester [DE]
- XPath 테스터 [KO]
- Tester XPath [IT]
- Тестер XPath [RU]
- XPath Test Aracı [TR]
- XPath 测试工具 [ZH]
- XPath Tester [EN]