XPath on tehnoloogia, mis täpselt ja tõhusalt määratleb ning eraldab vajaliku teabe puustruktuuri andmetest, nagu HTML ja XML.
XPathi ülevaade
XPath on keel, mida kasutatakse konkreetsete elementide ja atribuutide määratlemiseks ja eraldamiseks XML- või HTML-dokumendipuus. Kuna veebilehed koosnevad sageli HTML-ist, kasutatakse XPathi laialdaselt erinevates olukordades, nagu veebikraapimine, andmete otsimine ja XML-andmete otsing.
Tüüpiline kasutus on järgmine:
- Andmete väljavõtmine veebikraapijates: XPathi kasutatakse konkreetsete andmete automaatseks allalaadimiseks, näiteks tooteinfo e-kaubanduse veebisaitidel või artiklite pealkirjade leidmiseks uudisteportaalidel.
- XML-andmete otsing ja töötlemine: Ärisüsteemides ja andmelinkide töötlemises vahetatakse andmeid sageli XML-formaadis. XPathi abil saad tõhusalt vajaliku info suurtest XML-andmemahtudest välja võtta.
- API vastuste parsing (XML-formaat): XML-põhiste API-de, nagu SOAP, kasutamisel kasutatakse XPathi vastuste andmete analüüsimiseks. See võimaldab kiiresti saada konkreetseid olekukoode ja tulemuste andmeid, parandades süsteemi integreerimise ja automatiseeritud töötlemise täpsust.
Tööriistasoovitus
XPathi õppimise ja kasutamise protsessis on levinumad tööriistad järgmised:
Chrome'i arendajatööriistad: Võimas tööriist, mis tuleb Chrome'i brauseriga, seda saab nimetada F12 klahvi vajutades. "Elements" paneelil saad kiiresti veebilehel HTML-elemente leida, hõljudes hiirega hiirega ja klõpsates, ning paremklõpsuga elemendil saab XPathi avaldise otse kopeerida, et seda oleks lihtne kontrollida ja testida. Näiteks e-kaubanduse tootelehte analüüsides saad kasutada Chrome'i arendajatööriistu, et kiiresti saada XPathi tootenimede, hindade ja muude elementide jaoks. Firefox Developer Tools: Tuleb ka brauseriga, sarnaselt Chrome Developer Toolsile. Samuti võimaldab see hõlpsasti leida elemente oma lehel ning vaadata ja testida XPathi väljendeid. See on hea valik arendajatele, kes on harjunud Firefoxi brauserit kasutama. Veebipõhised XPath testimistööriistad: Veebitööriistu nagu "XPath Tester" saab kasutada ilma installita ja neid saab kasutada veebilehe avamisega. Lihtsalt kleepi XML- või HTML-dokumendi sisu, sisesta XPathi avaldis ja vaata vastavustulemusi reaalajas. See tööriist sobib eriti hästi algajatele, et kiiresti alustada ja teha lihtsaid XPath harjutusi. XPath Helper Plugin: Näiteks Chrome Browseri puhul, pärast XPath Helper plugina paigaldamist lisab see veebis sirvides brauseri liidesesse ujuva akna, kuvades praeguse hiireülekanne elemendi XPathi tee, ning XPathi avaldisi saab otse aknas muuta ja testida, mis parandab oluliselt arenduse efektiivsust.
XPath abstraktne süntaks
Vali sõlm
XPath kasutab teeavaldisi sõlmede valimiseks XML-dokumendis. Sõlmed valitakse rada või sammu järgides. Kõige kasulikumad teeavaldised on loetletud allpool:
avaldis | kirjeldus | | Sõlmnimi | Valib kõik selle sõlme laps-sõlmed. | | / | Vali juursõlmest (võta lapsõlm). | | // | Valib dokumendis sõlmed sobiva valiku praegusest sõlmest, sõltumata nende asukohast (võta järeltulijad sõlmed). | | . | Vali praegune sõlm. | | .. | Vali praeguse sõlme vanemasõlm. | | @ | Vali atribuut. |
Allolevas tabelis oleme loetlenud mõned teekonna avaldised koos avaldiste tulemustega:
Teede avaldised | tulemus | | raamatupood | Vali kõik sõlmed nimega raamatupood. | | /bookstore | Vali Root Element raamatupood. Märkus: Kui tee algab edasise kaldkriipsuga ( / ), siis see rada esindab alati absoluutset teed elemendini! | | Raamatupood/raamat | Valib kõik raamatu elemendid, mis on raamatupoe lapselemendid. | | //book | Valib kõik raamatu alamelemendid, sõltumata nende asukohast dokumendis. | | Raamatupood//raamat | Vali kõik raamatuelemendid, mis on raamatupoe elemendi järeltulijad, sõltumata sellest, kus need raamatupoe all asuvad. | | @lang | Vali kõik lang-nimelised omadused. |
Predikaadid
Predikaati kasutatakse konkreetse sõlme või kindla väärtusega sõlme leidmiseks. Predikaat on paigutatud nurksulgudesse. Allolevas tabelis loetleme mõned teeavaldised predikaatidega ning avaldiste tulemused:
Teede avaldised | tulemus | | /bookstore/book[1] | Vali esimene raamatu element, mis on osa raamatupoe lapselemendist. | | /bookstore/book[last()] | Valib viimase raamatu elemendi, mis on osa raamatupoe alamelemendist. | | /bookstore/book[last()-1] | Valib eelviimase raamatu elemendi, mis kuulub raamatupoe lapselemendi hulka. | | /bookstore/book[position()<3] | Vali esimesed kaks raamatu elementi, mis on raamatupoe elemendi lapselemendid. | | pealkiri[@lang] | Valib kõik pealkirjaelemendid, millel on omadus nimega lang. | | pealkiri[@lang='eng'] | Valib kõik pealkirja elemendid, millel on lang atribuut inglise väärtusega. | | /bookstore/book[price>35.00] | Valib kõik raamatu elemendid raamatupoe elemendist ning hinnaelemendi väärtus peab olema suurem kui 35.00. | | /bookstore/book[price>35.00]//title | Valib kõik raamatu elemendi pealkirjaelemendid raamatupoe elemendis ning hinnaelemendi väärtus peab olema suurem kui 35.00. |
Vali tundmatu sõlm
XPath wildcard'e saab kasutada tundmatute XML-elementide korjamiseks.
Wild card | kirjeldus | | * | Sobib iga elemendi sõlme. | | @* | Sobib iga atribuudi sõlme. | | node() | Sobib igat tüüpi sõlmedega. |
Allolevas tabelis loetleme mõned teeavaldised ja nende tulemused:
Teede avaldised | tulemus | | /bookstore/* | Valib kõik raamatupoe elemendi lapseelemendid. | | //* | Valib kõik dokumendi elemendid. | | pealkiri[@*] | Valib kõik pealkirjaelemendid atribuutidega. |
Vali mitu teed
Kasutades teekonna avaldises "|" Operaatorid, saate valida mitu teed.
Allolevas tabelis loetleme mõned teeavaldised ja nende tulemused:
Teede avaldised | tulemus | | //book/title | //book/price | Valib kõik raamatu elemendi pealkirja ja hinna elemendid. | | pealkiri | hind | Vali dokumendis kõik pealkirja ja hinna elemendid. | | /bookstore/book/title | //price | Valib kõik raamatu elemendi pealkirjaelemendid, mis kuuluvad raamatupoe elementi, ning kõik hinnaelemendid dokumendis. |
XPath funktsioon
Järgnevalt on kommenteeritud nimekiri XPath-spetsiifilistest täiendustest XPathi põhifunktsioonide ja XSLT poolt, sealhulgas kirjeldused, süntaksi, parameetrite nimekirjad, tulemustüübid ja allikad vastavates W3C soovitustes.
- Boolean()
- lagi()
- choose()
- concat()
- sisaldab()
- count()
- current() XSLT-spetsiifiline
- document() XSLT-spetsiifiline
- element-saadaval()
- false()
- korrus()
- format-number() XSLT spetsiifiline
- function-available()
- generate-id() XSLT-spetsiifiline
- id()
- key() XSLT-spetsiifiline
- lang()
- last()
- kohalik-nimi()
- nimi()
- namespace-uri()
- normalise-ruum()
- not()
- number()
- positsioon()
- round()
- alustab()
- string()
- string-pikkus()
- substring()
- alamstring-pärast()
- alamstring-before()
- sum()
- süsteemi-omadus() XSLT-spetsiifiline
- Translate()
- true()
- unparsed-entity-url() XSLT-spetsiifiline
Praktilised testid
Ava Chrome ja saa kõigi A-vahekaardi linkide tekstisisu järgmise käsuga:
Nagu allpool näidatud:
Viide:Hüperlingi sisselogimine on nähtav. |