XPath je technologie, která přesně a efektivně specifikuje a extrahuje požadované informace ze struktur stromu, jako jsou HTML a XML.
Přehled XPathu
XPath je jazyk používaný ke specifikaci a extrakci konkrétních prvků a atributů ve stromu XML nebo HTML dokumentů. Protože webové stránky jsou často složeny z HTML, XPath se široce používá v různých situacích, jako je web scraping, vyhledávání dat a vyhledávání XML dat.
Typické použití je následující:
- Extrakce dat ve webových crawlerech: XPath se používá k automatickému získávání specifických dat, například informací o produktech na e-commerce webech nebo názvů článků na zpravodajských webech.
- XML vyhledávání a zpracování dat: V podnikových systémech a zpracování datových spojení jsou data často vyměňována ve formátu XML. Použitím XPath můžete efektivně extrahovat potřebné informace z velkého množství XML dat.
- Analýza API odpovědí (XML formát): Při použití API založených na XML, jako je SOAP, se XPath používá k analýze dat odpovědí. To vám umožní rychle získat specifické stavové kódy a výsledky dat, čímž se zvyšuje přesnost integrace systému a automatizovaného zpracování.
Doporučení nástroje
Při učení a používání XPath jsou běžné nástroje:
Chrome Developer Tools: Výkonný nástroj přicházející s prohlížečem Chrome, který můžete vyvolat stisknutím klávesy F12. V panelu "Elements" můžete rychle najít HTML prvky na webové stránce kliknutím a kliknutím pravým tlačítkem na prvek můžete přímo zkopírovat výraz XPath pro snadné ověření a testování. Například při analýze stránky e-commerce produktu můžete pomocí vývojářských nástrojů Chrome rychle získat XPath pro názvy produktů, ceny a další prvky. Firefox Developer Tools: Také přichází s prohlížečem, podobně jako Chrome Developer Tools. Také vám umožňuje snadno najít prvky na stránce a zobrazit a testovat výrazy XPath. To je dobrá volba pro vývojáře, kteří jsou zvyklí používat prohlížeč Firefox. Online nástroje pro testování XPath: Online nástroje jako "XPath Tester" lze používat bez instalace a lze je použít otevřením webové stránky. Stačí vložit obsah XML nebo HTML dokumentu, zadat výraz XPath a výsledky zápasu zobrazit v reálném čase. Tento nástroj je obzvlášť vhodný pro začátečníky, kteří chtějí rychle začít a dělat jednoduchá cvičení XPath. XPath Helper Plugin: Například Chrome Browser – po instalaci pluginu XPath Helper se při prohlížení webu objeví plovoucí okno do rozhraní prohlížeče, které zobrazí cestu XPath aktuálního prvku myší, a můžete upravovat a testovat výrazy XPath přímo v okně, což výrazně zvyšuje efektivitu vývoje.
XPath abstraktní syntax
Vyberte uzel
XPath používá výrazy cest k výběru uzlů v XML dokumentu. Uzly jsou vybírány podle cesty nebo kroku. Nejužitečnější výrazy cest jsou uvedeny níže:
výraz | popis | | Nodename | Vybere všechny poduzly tohoto uzlu. | | / | Vyberte z kořenového uzlu (vezměte podřízený uzel). | | // | Vybere uzly v dokumentu z aktuálního uzlu odpovídající výběru, bez ohledu na jejich umístění (vezměte potomky). | | . | Vyberte aktuální uzel. | | .. | Vyberte mateřský uzel aktuálního uzlu. | | @ | Vyberte si atribut. |
V tabulce níže jsme uvedli některé výrazy cest spolu s výsledky těchto výrazů:
Výrazy cest | výsledek | | knihkupectví | Vyberte všechny uzly s názvem knihkupectví. | | /bookstore | Vyberte knihkupectví s kořenovým prvkem. Poznámka: Pokud cesta začíná předním lomíkem ( / ), pak tato cesta vždy představuje absolutní cestu k prvku! | | Knihkupectví/kniha | Vybere všechny knižní prvky, které jsou dětskými prvky knihkupectví. | | //book | Vybere všechny podprvky knihy, bez ohledu na jejich pozici v dokumentu. | | knihkupectví//kniha | Vyberte všechny knižní prvky, které jsou potomky knihkupectví, bez ohledu na to, kde se nacházejí pod knihkupectvím. | | @lang | Vyberte všechny vlastnosti pojmenované lang. |
Predikáty
Predikát se používá k nalezení konkrétního uzlu nebo uzlu obsahujícího zadanou hodnotu. Predikát je vložen do hranatých závorek. V tabulce níže uvádíme některé výrazy po cestách s predikáty a výsledky těchto výrazů:
Výrazy cest | výsledek | | /bookstore/book[1] | Vyberte prvek první knihy, který je součástí dětského prvku knihkupectví. | | /bookstore/book[last()] | Vybere poslední prvek knihy, který je součástí podprvku knihkupectví. | | /bookstore/book[last()-1] | Vybere předposlední knižní prvek, který patří do dětského dílu knihkupectví. | | /bookstore/book[position()<3] | Vyberte první dva knižní prvky, které jsou podřadnými prvky knihkupectví. | | Název[@lang] | Vybere všechny prvky titulu, které mají vlastnost jménem lang. | | Titul[@lang='eng'] | Vybere všechny titulní prvky, které mají atribut lang s hodnotou eng. | | /bookstore/book[price>35.00] | Vybere všechny knižní prvky knihkupectví a hodnota cenové položky musí být větší než 35,00. | | /bookstore/book[price>35.00]//title | Vybere všechny prvky názvu knihy v knihkupectví a hodnota položky ceny musí být větší než 35,00. |
Vyberte neznámý uzel
XPath divoké karty lze použít k vyzvednutí neznámých XML prvků.
zástupný znak | popis | | * | Odpovídá jakémukoli uzlu prvku. | | @* | Odpovídá jakémukoli atributovému uzlu. | | node() | Odpovídá jakémukoli typu uzlu. |
V tabulce níže uvádíme některé výrazy cest a výsledky těchto výrazů:
Výrazy cest | výsledek | | /bookstore/* | Vybere všechny dětské prvky knihkupectví. | | //* | Vybere všechny prvky v dokumentu. | | Název[@*] | Vybere všechny titulní prvky s atributy. |
Vyberte několik cest
Použitím "|" ve výrazu cesty Operátori, můžete si vybrat několik cest.
V tabulce níže uvádíme některé výrazy cest a výsledky těchto výrazů:
Výrazy cest | výsledek | | //book/title | //book/price | Vybere všechny prvky názvu a ceny knihy. | | Název | cena | Vyberte všechny prvky názvu a ceny v dokumentu. | | /bookstore/book/title | //price | Vybere všechny titulní prvky knihy, které patří do knihkupectví, a všechny cenové prvky v dokumentu. |
Funkce XPath
Následuje komentovaný seznam XPathových specifických doplňků k XPathu jádrovými funkcemi XPath a XSLT, včetně popisů, syntaxe, seznamů parametrů, typů výsledků a zdrojů v odpovídajících doporučeních W3C.
- boolean()
- ceiling()
- choose()
- concat()
- obsahuje()
- count()
- current() XSLT specifický
- document() XSLT specifický
- element-available()
- false()
- floor()
- formát-number() XSLT specifický
- function-available()
- generate-id() XSLT specifický
- id()
- key() XSLT specifický
- lang()
- last()
- local-name()
- name()
- Namespace-uri()
- normalize-space()
- not()
- number()
- position()
- round()
- začíná-s()
- string()
- string-length()
- substring()
- substring-after()
- substring-before()
- sum()
- system-property() specifický pro XSLT
- translate()
- true()
- unparsed-entity-url() specifický pro XSLT
Praktické zkoušky
Otevřete Chrome a získejte textový obsah všech odkazů na záložku A pomocí následujícího příkazu:
Jak je uvedeno níže:
Odkaz:Přihlášení k hypertextovému odkazu je viditelné. |