XPath je technológia, ktorá presne a efektívne špecifikuje a extrahuje požadované informácie zo štruktúry stromu, ako sú HTML a XML.
Prehľad XPath
XPath je jazyk používaný na špecifikáciu a extrakciu konkrétnych prvkov a atribútov v XML alebo HTML strome dokumentov. Keďže webové stránky sú často zložené z HTML, XPath sa široko používa v rôznych situáciách, ako je web scraping, vyhľadávanie dát a vyhľadávanie XML dát.
Typické použitie je nasledovné:
- Extrakcia dát vo webových prehľadávačoch: XPath sa používa na automatické získavanie konkrétnych údajov, ako sú informácie o produktoch na e-commerce weboch alebo názvy článkov na spravodajských weboch.
- Vyhľadávanie a spracovanie XML dát: V podnikových systémoch a spracovaní dátových spojení sa údaje často vymieňajú vo formáte XML. Použitím XPath môžete efektívne extrahovať potrebné informácie z veľkého množstva XML dát.
- Parsing API Responses (XML formát): Pri používaní XML založených API, ako je SOAP, sa XPath používa na analýzu dát odpovedí. To vám umožní rýchlo získať konkrétne stavové kódy a údaje o výsledkoch, čím sa zvyšuje presnosť integrácie systému a automatizovaného spracovania.
Odporúčanie nástrojov
Pri učení sa a používaní XPath sú bežné nástroje:
Chrome Developer Tools: Výkonný nástroj, ktorý je súčasťou prehliadača Chrome, môžete ho zavolať stlačením klávesu F12. V paneli "Elements" môžete rýchlo nájsť HTML prvky na webovej stránke podržaním myši a kliknutím, a pravým kliknutím na prvok môžete priamo skopírovať výraz XPath pre jednoduchú overenie a testovanie. Napríklad pri analýze stránky e-commerce produktu môžete pomocou vývojárskych nástrojov Chrome rýchlo získať XPath pre názvy produktov, ceny a ďalšie prvky. Firefox Developer Tools: Tiež prichádza s prehliadačom, podobne ako Chrome Developer Tools. Tiež vám umožňuje jednoducho nájsť prvky na vašej stránke, ako aj zobraziť a testovať výrazy XPath. Toto je dobrá voľba pre vývojárov, ktorí sú zvyknutí používať prehliadač Firefox. Online nástroje na testovanie XPath: Online nástroje ako "XPath Tester" je možné používať bez inštalácie a otvorením webovej stránky. Stačí vložiť obsah XML alebo HTML dokumentu, zadať výraz XPath a vidieť výsledky zápasu v reálnom čase. Tento nástroj je obzvlášť vhodný pre začiatočníkov, ktorí chcú rýchlo začať a robiť jednoduché XPath cvičenia. XPath Helper Plugin: Napríklad Chrome Browser, po nainštalovaní pluginu XPath Helper sa pri prehliadaní webu zobrazí plávajúce okno do rozhrania prehliadača, ktoré zobrazuje cestu XPath aktuálneho prvku myšou, a môžete upravovať a testovať XPath výrazy priamo v okne, čo výrazne zvyšuje efektivitu vývoja.
XPath abstraktná syntax
Vyberte uzol
XPath používa výrazy ciest na výber uzlov v XML dokumente. Uzly sa vyberajú podľa cesty alebo kroku. Najpoužiteľnejšie výrazy po cestách sú uvedené nižšie:
výraz | popis | | Nodename | Vyberie všetky poduzly tohto uzla. | | / | Vyber z koreňového uzla (vezmi si podriadený uzol). | | // | Vyberá uzly v dokumente z aktuálneho uzla zodpovedajúceho výberu, bez ohľadu na ich umiestnenie (vezmite potomkovské uzly). | | . | Vyberte aktuálny uzol. | | .. | Vyberte rodičovský uzol aktuálneho uzla. | | @ | Vyberte si atribút. |
V tabuľke nižšie sme spolu s výsledkami týchto výrazov uviedli niektoré výrazy po cestách:
Výrazy po cestách | výsledok | | kníhkupectvo | Vyberte všetky uzly s názvom Bookstore. | | /bookstore | Vyberte si kníhkupectvo root element. Poznámka: Ak cesta začína priamym lomkom ( / ), potom táto cesta vždy predstavuje absolútnu cestu k prvku! | | Kníhkupectvo/Kniha | Vyberá všetky knižné prvky, ktoré sú detskými prvkami kníhkupectva. | | //book | Vyberá všetky podprvky knihy, bez ohľadu na ich pozíciu v dokumente. | | kníhkupectvo//kniha | Vyberte všetky knižné prvky, ktoré sú potomkami kníhkupectva, bez ohľadu na to, kde sa nachádzajú pod kníhkupectvom. | | @lang | Vyberte všetky vlastnosti pomenované lang. |
Predikáty
Predikát sa používa na nájdenie konkrétneho uzla alebo uzla obsahujúceho určenú hodnotu. Predikát je vložený v hranatých zátvorkách. V tabuľke nižšie uvádzame niektoré cestné výrazy s predikátmi a výsledky týchto výrazov:
Výrazy po cestách | výsledok | | /bookstore/book[1] | Vyberte prvok prvej knihy, ktorý je súčasťou detského prvku kníhkupectva. | | /bookstore/book[last()] | Vyberie posledný knižný prvok, ktorý je súčasťou podprvku kníhkupectva. | | /bookstore/book[last()-1] | Vyberie predposledný knižný prvok, ktorý patrí detskému prvku kníhkupectva. | | /bookstore/book[position()<3] | Vyberte prvé dva knižné prvky, ktoré sú potomkami kníhkupectva. | | Názov[@lang] | Vyberá všetky prvky titulu, ktoré majú vlastnosť s názvom lang. | | Názov[@lang='eng'] | Vyberá všetky titulné prvky, ktoré majú atribút lang s hodnotou eng. | | /bookstore/book[price>35.00] | Vyberie všetky knižné prvky kníhkupectva a hodnota tejto časti musí byť vyššia ako 35,00. | | /bookstore/book[price>35.00]//title | Vyberie všetky titulné prvky knižného prvku v kníhkupectve, pričom hodnota cenovej časti musí byť vyššia ako 35,00. |
Vyberte neznámy uzol
XPath divoké karty môžu byť použité na vyberanie neznámych XML prvkov.
Zástupné | popis | | * | Zodpovedá ktorémukoľvek elementovému uzlu. | | @* | Zodpovedá ktorémukoľvek atribútovému uzlu. | | node() | Zodpovedá akémukoľvek typu uzla. |
V tabuľke nižšie uvádzame niektoré výrazy po cestách a výsledky týchto výrazov:
Výrazy po cestách | výsledok | | /bookstore/* | Vyberá všetky detské prvky kníhkupectva. | | //* | Vyberá všetky prvky v dokumente. | | Názov[@*] | Vyberá všetky prvky titulu s atribútmi. |
Vyberte si niekoľko ciest
Použitím "|" vo výraze po ceste operátori, môžete si vybrať niekoľko ciest.
V tabuľke nižšie uvádzame niektoré výrazy po cestách a výsledky týchto výrazov:
Výrazy po cestách | výsledok | | //book/title | //book/price | Vyberá všetky prvky názvu a ceny knihy. | | Titul | cena | Vyberte všetky prvky názvu a ceny v dokumente. | | /bookstore/book/title | //price | Vyberá všetky prvky názvu knihy, ktoré patria do kníhkupectva, a všetky cenové prvky v dokumente. |
Funkcia XPath
Nasleduje komentovaný zoznam XPath-špecifických doplnkov k XPath jadrovými funkciami XPath a XSLT, vrátane popisov, syntaxe, zoznamov parametrov, typov výsledkov a zdrojov v príslušných odporúčaniach W3C.
- boolean()
- ceiling()
- choose()
- concat()
- obsahuje()
- count()
- current() XSLT špecifické
- dokument() XSLT špecifický
- element-available()
- false()
- floor()
- formát-number() XSLT špecifické
- function-available()
- generate-id() XSLT špecifické
- id()
- key() XSLT špecifické
- lang()
- last()
- local-name()
- meno()
- Namespace-uri()
- normalize-space()
- not()
- number()
- position()
- round()
- začína-with()
- string()
- string-length()
- substring()
- substring-after()
- substring-before()
- sum()
- system-property() špecifické pre XSLT
- translate()
- true()
- unparsed-entity-url() XSLT špecifický
Praktické skúšky
Otvorte Chrome a získajte textový obsah všetkých odkazov na kartu A pomocou nasledujúceho príkazu:
Ako je uvedené nižšie:
Referencia:Prihlásenie na hypertextový odkaz je viditeľné. |