XPath este o tehnologie care specifică și extrage corect și eficient informațiile necesare din datele despre structura arborelui, cum ar fi HTML și XML.
Prezentare generală XPath
XPath este un limbaj folosit pentru a specifica și extrage elemente și atribute specifice într-un arbore de documente XML sau HTML. Deoarece paginile web sunt adesea compuse din HTML, XPath este folosit pe scară largă în diverse scenarii, cum ar fi web scraping, recuperarea datelor și căutarea de date XML.
Utilizarea tipică este următoarea:
- Extragerea datelor în web crawlere: XPath este folosit pentru a prelua automat date specifice, cum ar fi informații despre produse pe site-uri de comerț electronic sau titluri de articole pe site-uri de știri.
- Căutare și procesare a datelor XML: În sistemele de afaceri și procesarea legăturilor de date, datele sunt adesea schimbate în format XML. Folosind XPath, poți extrage eficient informațiile necesare din cantități mari de date XML.
- Parsing API Responses (format XML): Când se folosesc API-uri bazate pe XML, cum ar fi SOAP, XPath este folosit pentru a analiza datele de răspuns. Acest lucru îți permite să obții rapid coduri de stare specifice și date despre rezultate, îmbunătățind acuratețea integrării sistemului și a procesării automate.
Recomandare pentru unelte
În procesul de învățare și utilizare a XPath, uneltele comune includ:
Chrome Developer Tools: Un instrument puternic care vine cu browserul Chrome, îl poți chema apăsând tasta F12. În panoul "Elements", poți localiza rapid elemente HTML pe o pagină web prin apăsarea și click-ul, iar click dreapta pe un element poți copia direct expresia XPath pentru o verificare și testare ușoară. De exemplu, atunci când analizezi o pagină de produs de comerț electronic, poți folosi instrumente de dezvoltare Chrome pentru a obține rapid XPath pentru numele produselor, prețuri și alte elemente. Firefox Developer Tools: De asemenea, vine cu browserul, similar cu Chrome Developer Tools. De asemenea, îți permite să localizezi ușor elemente pe pagină, precum și să vizualizezi și să testezi expresii XPath. Aceasta este o opțiune bună pentru dezvoltatorii obișnuiți să folosească browserul Firefox. Instrumente online de testare XPath: Unelte online precum "XPath Tester" pot fi folosite fără instalare și pot fi folosite prin deschiderea unei pagini web. Pur și simplu lipește conținutul unui document XML sau HTML, introduci o expresie XPath și vezi rezultatele potrivirii în timp real. Acest instrument este deosebit de potrivit pentru începători care doresc să înceapă rapid și să facă exerciții simple XPath. Pluginul XPath Helper: Luând ca exemplu Chrome Browser, după instalarea pluginului XPath Helper, acesta va adăuga o fereastră plutitoare interfeței browserului când navighezi pe web, afișând calea XPath a elementului curent cu mouse-over, iar tu poți edita și testa expresiile XPath direct în fereastră, îmbunătățind semnificativ eficiența dezvoltării.
Sintaxa abstractă XPath
Selectează un nod
XPath folosește expresii de cale pentru a selecta nodurile dintr-un document XML. Nodurile sunt selectate urmând o cale sau un pas. Cele mai utile expresii ale traseului sunt enumerate mai jos:
expresie | descriere | | Nume de nod | Alege toate nodurile copil ale acestui nod. | | / | Alege din nodul rădăcină (ia nodul copil). | | // | Selectează nodurile din document din nodul curent al selecției potrivite, indiferent de locația lor (să luăm nodurile descendente). | | . | Alege nodul curent. | | .. | Alege nodul părinte al nodului curent. | | @ | Alege un atribut. |
În tabelul de mai jos, am enumerat câteva expresii de cale împreună cu rezultatele expresiilor:
Expresii de cale | rezultat | | librărie | Alege toate nodurile numite librărie. | | /bookstore | Alege librăria cu element rădăcină. Notă: Dacă calea începe cu o bară oblică înainte ( / ), atunci această cale reprezintă întotdeauna o cale absolută către un element! | | librărie/carte | Alege toate elementele de carte care sunt elemente de copil ale librăriei. | | //book | Alege toate subelementele cărții, indiferent de poziția lor în document. | | Librărie//carte | Selectați toate elementele de carte care sunt descendenți ai elementului librăriei, indiferent unde se află sub librărie. | | @lang | Alege toate proprietățile numite lang. |
Predicate
Un predicat este folosit pentru a găsi un nod specific sau un nod care conține o valoare specificată. Predicatul este încorporat între paranteze pătrate. În tabelul de mai jos, listăm câteva expresii de cale cu predicate și rezultatele expresiilor:
Expresii de cale | rezultat | | /bookstore/book[1] | Alege primul element de carte care face parte din elementul copil al librăriei. | | /bookstore/book[last()] | Alege ultimul element de carte care face parte din subelementul librăriei. | | /bookstore/book[last()-1] | Alege penultimul element de carte care aparține elementului copil din librărie. | | /bookstore/book[position()<3] | Alege primele două elemente de carte care sunt elemente copil ale elementului librăriei. | | Titlu[@lang] | Alege toate elementele titlului care au o proprietate numită lang. | | titlu[@lang='eng'] | Alege toate elementele titlului care au un atribut lang cu o valoare eng. | | /bookstore/book[price>35.00] | Alege toate elementele de carte ale elementului librăriei, iar valoarea elementului preț trebuie să fie mai mare de 35,00. | | /bookstore/book[price>35.00]//title | Alege toate elementele de titlu ale elementului de carte din elementul librăriei, iar valoarea elementului de preț trebuie să fie mai mare de 35,00. |
Selectează un nod necunoscut
Wildcard-urile XPath pot fi folosite pentru a prelua elemente XML necunoscute.
Wildcard | descriere | | * | Se potrivește cu orice nod element. | | @* | Se potrivește oricărui nod de atribut. | | nod() | Se potrivește cu orice tip de nod. |
În tabelul de mai jos, listăm câteva expresii ale traseului și rezultatele acestor expresii:
Expresii de cale | rezultat | | /bookstore/* | Alege toate elementele copilului din elementul librăriei. | | //* | Selectează toate elementele din document. | | titlu[@*] | Alege toate elementele titlului cu atribute. |
Alege mai multe căi
Prin folosirea cuvântului "|" în expresia de cale operatori, puteți alege mai multe căi.
În tabelul de mai jos, listăm câteva expresii ale traseului și rezultatele acestor expresii:
Expresii de cale | rezultat | | //book/title | //book/price | Alege toate elementele de titlu și preț ale cărții. | | titlu | preț | Alege toate elementele de titlu și preț din document. | | /bookstore/book/title | //price | Selectează toate elementele de titlu ale elementului de carte care aparțin elementului librăriei și toate elementele de preț din document. |
Funcția XPath
Următoarea este o listă comentată cu adăugiri specifice XPath la XPath de funcții de bază XPath și XSLT, incluzând descrieri, sintaxă, liste de parametri, tipuri de rezultate și surse din recomandările corespunzătoare W3C.
- boolean()
- plafon()
- alege()
- concat()
- conține()
- count()
- curent() specific XSLT
- document() specific XSLT
- element-disponibil()
- false()
- floor()
- număr-format() specific XSLT
- funcția disponibilă()
- generate-id() specific XSLT
- id()
- key() specific XSLT
- lang()
- last()
- nume-local()
- Nume()
- Spațiu de nume-uri()
- Spațiul de normalizare()
- not()
- număr()
- Poziție()
- rotund()
- începe-cu()
- string()
- lungime-coardă()
- substring()
- substring-după()
- substring-înainte()
- sum()
- System-property() specific XSLT
- translate()
- adevărat()
- unparsed-entity-url() specific XSLT
Teste practice
Deschide Chrome și obține conținutul textului tuturor linkurilor filei A cu următoarea comandă:
Așa cum se arată mai jos:
Referință:Autentificarea cu hyperlink este vizibilă. |