XPath er en teknologi, der præcist og effektivt specificerer og udtrækker den nødvendige information fra træstrukturdata, såsom HTML og XML.
XPath Oversigt
XPath er et sprog, der bruges til at specificere og udtrække specifikke elementer og attributter i et XML- eller HTML-dokumenttræ. Da websider ofte består af HTML, anvendes XPath bredt i forskellige scenarier, såsom webscraping, datahentning og XML-datasøgning.
Typisk brug er som følger:
- Dataudtrækning i webcrawlere: XPath bruges til automatisk at hente specifikke data, såsom produktinformation på e-handelswebsites eller artikeltitler på nyhedssider.
- XML-datasøgning og -behandling: I forretningssystemer og datalinkbehandling udveksles data ofte i XML-format. Ved at bruge XPath kan du effektivt udtrække den nødvendige information fra store mængder XML-data.
- Parsing API-svar (XML-format): Når man bruger XML-baserede API'er, såsom SOAP, bruges XPath til at parse svardata. Dette gør det muligt hurtigt at få specifikke statuskoder og resultatdata, hvilket forbedrer nøjagtigheden af systemintegration og automatiseret behandling.
Værktøjsanbefaling
I processen med at lære og bruge XPath omfatter almindelige værktøjer:
Chrome Developer Tools: Et kraftfuldt værktøj, der følger med Chrome-browseren, du kan kalde det ved at trykke på F12-tasten. I panelet "Elements" kan du hurtigt finde HTML-elementer på en webside ved at holde musen og klikke, og ved at højreklikke på et element kan du direkte kopiere XPath-udtrykket for nem verifikation og test. For eksempel, når du analyserer en e-handelsproduktside, kan du bruge Chrome-udviklerværktøjer til hurtigt at hente XPath for produktnavne, priser og andre elementer. Firefox Developer Tools: Leveres også med browseren, ligesom Chrome Developer Tools. Det gør det også nemt at finde elementer på din side samt at se og teste XPath-udtryk. Dette er en god mulighed for udviklere, der er vant til at bruge Firefox-browseren. Online XPath-testværktøjer: Online værktøjer som "XPath Tester" kan bruges uden installation og kan bruges ved at åbne en webside. Indsæt blot indholdet af et XML- eller HTML-dokument, indtast et XPath-udtryk, og se matchresultaterne i realtid. Dette værktøj er især velegnet til begyndere, der hurtigt vil komme i gang og lave simple XPath-øvelser. XPath Helper Plugin: Tag Chrome Browser som eksempel, efter installation af XPath Helper-plugin'et, vil det tilføje et flydende vindue til browserens grænseflade, når du surfer på nettet, som viser XPath-stien for det aktuelle muse-over-element, og du kan redigere og teste XPath-udtryk direkte i vinduet, hvilket i høj grad forbedrer udviklingseffektiviteten.
XPath abstrakt syntaks
Vælg en node
XPath bruger sti-udtryk til at vælge noder i et XML-dokument. Noder vælges ved at følge en sti eller et trin. De mest nyttige stiudtryk er listet nedenfor:
udtryk | beskrivelse | | Nodenavn | Vælger alle underordnede noder til denne node. | | / | Vælg fra rodnoden (tag child node). | | // | Vælger noder i dokumentet fra den aktuelle node i match-valget, uanset deres placering (tag efterkommeriske noder). | | . | Vælg den aktuelle node. | | .. | Vælg forældrenoden til den nuværende node. | | @ | Vælg en attribut. |
I tabellen nedenfor har vi listet nogle stiudtryk sammen med resultaterne af udtrykkene:
Stiudtryk | udfald | | boghandel | Vælg alle noder med navnet boghandel. | | /bookstore | Vælg boghandlen med root element. Bemærk: Hvis stien starter med en fremadrettet skråstreg ( / ), repræsenterer denne sti altid en absolut sti til et element! | | Boghandel/Bog | Vælger alle bogelementer, der er børneelementer i boghandlen. | | //book | Vælger alle bogdelelementer, uanset deres placering i dokumentet. | | boghandel//bog | Vælg alle bogelementer, der er efterkommere af boghandlerelementet, uanset hvor de er placeret under boghandlen. | | @lang | Vælg alle de egenskaber, der hedder lang. |
Prædikater
Et prædikat bruges til at finde en specifik node eller en node med en specificeret værdi. Prædikatet er indlejret i firkantede parenteser. I tabellen nedenfor lister vi nogle stiudtryk med prædikater og resultaterne af udtrykkene:
Stiudtryk | udfald | | /bookstore/book[1] | Vælg det første bogelement, der er en del af boghandlerens børneelement. | | /bookstore/book[last()] | Vælger det sidste bogelement, der er en del af boghandlens underelement. | | /bookstore/book[last()-1] | Vælger det næstsidste bogelement, som tilhører boghandlerens børneelement. | | /bookstore/book[position()<3] | Vælg de to første bogelementer, som er børneelementer i boghandelen. | | titel[@lang] | Vælger alle titelelementer, der har en egenskab kaldet lang. | | titel[@lang='eng'] | Vælger alle titelelementer, der har en lang-attribut med en eng-værdi. | | /bookstore/book[price>35.00] | Vælger alle bogdelene i boghandlen, og værdien af priselementet skal være over 35,00. | | /bookstore/book[price>35.00]//title | Vælger alle titelelementerne i bogelementet i boghandleelementet, og værdien af priselementet skal være over 35,00. |
Vælg en ukendt node
XPath-wildcards kan bruges til at opfange ukendte XML-elementer.
Wildcard | beskrivelse | | * | Matcher enhver elementnode. | | @* | Matcher enhver attributnode. | | node() | Matcher enhver type node. |
I tabellen nedenfor lister vi nogle sti-udtryk og resultaterne af disse udtryk:
Stiudtryk | udfald | | /bookstore/* | Vælger alle børneelementerne fra boghandler-elementet. | | //* | Vælger alle elementer i dokumentet. | | titel[@*] | Vælger alle titelelementer med attributter. |
Vælg flere veje
Ved at bruge "|" i sti-udtrykket Operatører, I kan vælge flere veje.
I tabellen nedenfor lister vi nogle sti-udtryk og resultaterne af disse udtryk:
Stiudtryk | udfald | | //book/title | //book/price | Vælger alle titel- og priselementer i bogelementet. | | Titel | pris | Vælg alle titel- og priselementer i dokumentet. | | /bookstore/book/title | //price | Vælger alle titelelementer i bogelementet, der tilhører boghandleelementet, samt alle priselementer i dokumentet. |
XPath-funktionen
Følgende er en kommenteret liste over XPath-specifikke tilføjelser til XPath efter kernefunktioner i XPath og XSLT, inklusive beskrivelser, syntaks, parameterlister, resultattyper og kilder i de tilsvarende W3C-anbefalinger.
- boolean()
- loft()
- velg()
- concat()
- indeholder()
- Count()
- current() XSLT-specifik
- document() XSLT-specifik
- element-tilgængelig()
- false()
- gulv()
- format-number() XSLT-specifik
- Funktion-tilgængelig()
- generate-id() XSLT-specifik
- id()
- key() XSLT-specifik
- lang()
- sidst()
- local-name()
- name()
- namespace-uri()
- normalize-space()
- not()
- number()
- position()
- rund()
- starter-med()
- streng()
- strenglængde()
- understreng()
- substring-efter()
- delstreng-før()
- sum()
- system-property() XSLT-specifik
- overset()
- true()
- unparsed-entity-url() XSLT specific
Praktiske prøver
Åbn Chrome og få tekstindholdet fra alle A-fanelinkene med følgende kommando:
Som vist nedenfor:
Henvisning:Hyperlink-login er synlig. |