XPath er en teknologi som nøyaktig og effektivt spesifiserer og henter ut nødvendig informasjon fra trestrukturdata, som HTML og XML.
XPath-oversikt
XPath er et språk som brukes til å spesifisere og hente ut spesifikke elementer og attributter i et XML- eller HTML-dokumenttre. Siden nettsider ofte består av HTML, brukes XPath mye i ulike situasjoner, som webscraping, datahenting og XML-datasøk.
Typisk bruk er som følger:
- Datauttrekking i nettcrawlere: XPath brukes til automatisk å hente spesifikke data, som produktinformasjon på netthandelsnettsteder eller artikkeltitler på nyhetsnettsteder.
- XML-datasøk og -behandling: I forretningssystemer og datalinkbehandling utveksles data ofte i XML-format. Ved å bruke XPath kan du effektivt hente ut nødvendig informasjon fra store mengder XML-data.
- Parsing API-svar (XML-format): Når man bruker XML-baserte API-er, som SOAP, brukes XPath til å analysere svardata. Dette gjør at du raskt kan hente spesifikke statuskoder og resultatdata, noe som forbedrer nøyaktigheten i systemintegrasjon og automatisert behandling.
Verktøyanbefaling
I prosessen med å lære og bruke XPath inkluderer vanlige verktøy:
Chrome Developer Tools: Et kraftig verktøy som følger med Chrome-nettleseren, du kan ringe det ved å trykke på F12-tasten. I "Elements"-panelet kan du raskt finne HTML-elementer på en nettside ved å holde musepekeren og klikke, og høyreklikk på et element kan kopiere XPath-uttrykket direkte for enkel verifisering og testing. For eksempel, når du analyserer en e-handelsproduktside, kan du bruke Chrome-utviklerverktøy for raskt å hente XPath for produktnavn, priser og andre elementer. Firefox Developer Tools: Leveres også med nettleseren, lik Chrome Developer Tools. Det lar deg også enkelt finne elementer på siden din, samt se og teste XPath-uttrykk. Dette er et godt alternativ for utviklere som er vant til å bruke Firefox-nettleseren. Nettbaserte XPath-testverktøy: Nettbaserte verktøy som "XPath Tester" kan brukes uten installasjon og kan brukes ved å åpne en nettside. Lim ganske enkelt inn innholdet i et XML- eller HTML-dokument, skriv inn et XPath-uttrykk, og se matchresultatene i sanntid. Dette verktøyet er spesielt egnet for nybegynnere som vil komme raskt i gang og gjøre enkle XPath-øvelser. XPath Helper Plugin: Tar vi Chrome Browser som eksempel, etter installasjon av XPath Helper-pluginen, vil det legge til et flytende vindu i nettlesergrensesnittet når du surfer på nettet, som viser XPath-stien til det nåværende muse-over-elementet, og du kan redigere og teste XPath-uttrykk direkte i vinduet, noe som i stor grad forbedrer utviklingseffektiviteten.
XPath abstrakt syntaks
Velg en node
XPath bruker stiuttrykk for å velge noder i et XML-dokument. Noder velges ved å følge en sti eller et steg. De mest nyttige stiuttrykkene er listet opp nedenfor:
uttrykk | beskrivelse | | Nodenavn | Plukker alle barnenoder til denne noden. | | / | Velg fra rotnoden (ta barnenoden). | | // | Velger noder i dokumentet fra den nåværende noden i det matchende valget, uavhengig av deres plassering (ta etterkommernoder). | | . | Velg den nåværende noden. | | .. | Velg foreldrenoden til den nåværende noden. | | @ | Velg et attributt. |
I tabellen nedenfor har vi listet opp noen stiuttrykk sammen med resultatene av uttrykkene:
Stiuttrykk | utfall | | bokhandel | Velg alle noder som heter bokhandel. | | /bookstore | Velg bokhandelen med root element. Merk: Hvis stien starter med en fremoverstrek ( / ), representerer denne stien alltid en absolutt vei til et element! | | Bokhandel/bok | Plukker ut alle bokelementer som er barneelementer i bokhandelen. | | //book | Plukker ut alle bokunderelementer, uavhengig av deres plassering i dokumentet. | | Bokhandel//bok | Velg alle bokelementer som er etterkommere av bokhandelelementet, uavhengig av hvor de befinner seg under bokhandelen. | | @lang | Velg alle eiendommene som heter lang. |
Predikater
Et predikat brukes for å finne en spesifikk node eller en node som inneholder en spesifisert verdi. Predikatet er innfelt i firkantede parenteser. I tabellen nedenfor lister vi opp noen stiuttrykk med predikater, og resultatene av uttrykkene:
Stiuttrykk | utfall | | /bookstore/book[1] | Velg det første bokelementet som er en del av barneelementet i bokhandelen. | | /bookstore/book[last()] | Velger det siste bokelementet som er en del av bokhandelens underelement. | | /bookstore/book[last()-1] | Velger nest siste bokelement som tilhører barneelementet i bokhandelen. | | /bookstore/book[position()<3] | Velg de to første bokelementene som er barneelementer i bokhandelen. | | tittel[@lang] | Velger alle tittelelementer som har en egenskap kalt lang. | | title[@lang='eng'] | Velger alle tittelelementer som har en lang-attributt med en eng-verdi. | | /bookstore/book[price>35.00] | Velger alle bokelementene i bokhandelelementet, og verdien av priselementet må være over 35,00. | | /bookstore/book[price>35.00]//title | Velger alle tittelelementene i bokdelen i bokhandelen, og verdien på priselementet må være høyere enn 35,00. |
Velg en ukjent node
XPath-jokerkort kan brukes til å plukke opp ukjente XML-elementer.
jokertegn | beskrivelse | | * | Matcher enhver elementnode. | | @* | Matcher enhver attributtnode. | | node() | Matcher alle typer noder. |
I tabellen nedenfor lister vi opp noen stiuttrykk, og resultatene av disse uttrykkene:
Stiuttrykk | utfall | | /bookstore/* | Plukker alle barneelementene i bokhandelelementet. | | //* | Velger alle elementene i dokumentet. | | tittel[@*] | Velger alle tittelelementer med attributter. |
Velg flere veier
Ved å bruke "|" i stiuttrykket Operatører, dere kan velge flere veier.
I tabellen nedenfor lister vi opp noen stiuttrykk, og resultatene av disse uttrykkene:
Stiuttrykk | utfall | | //book/title | //book/price | Plukker alle tittel- og priselementene i bokelementet. | | tittel | pris | Velg alle tittel- og priselementer i dokumentet. | | /bookstore/book/title | //price | Velger alle tittelelementer i bokdelen som tilhører bokhandelen, og alle priselementer i dokumentet. |
XPath-funksjonen
Følgende er en kommentert liste over XPath-spesifikke tillegg til XPath etter kjernefunksjoner i XPath og XSLT, inkludert beskrivelser, syntaks, parameterlister, resultattyper og kilder i de tilsvarende W3C-anbefalingene.
- boolsk()
- tak()
- velg()
- concat()
- inneholder()
- tell()
- current() XSLT-spesifikt
- dokument() XSLT-spesifikt
- element-tilgjengelig()
- false()
- gulv()
- format-number() XSLT-spesifikk
- funksjon-tilgjengelig()
- generate-id() XSLT-spesifikk
- id()
- Key() XSLT-spesifikt
- lang()
- last()
- local-name()
- name()
- namespace-uri()
- normaliser-space()
- ikke()
- number()
- posisjon()
- rund()
- starter-med()
- streng()
- strenglengde()
- delstreng()
- substring-etter()
- delstreng-før()
- sum()
- system-property() XSLT-spesifikk
- oversett()
- true()
- unparsed-entity-url() XSLT-spesifikk
Praktiske prøver
Åpne Chrome og få tekstinnholdet til alle A-fanelenkene med følgende kommando:
Som vist nedenfor:
Referanse:Innloggingen med hyperkoblingen er synlig. |