Dezvoltat de | Consorțiul World Wide Web |
---|---|
Prima versiune | 1999 |
Ultima versiune | 3.1 (21 martie 2017) |
Citiți formatele | Limbaj de marcare extensibil și notare obiect JavaScript |
Tip |
Limbaj de interogare Limbaj de programare |
XPath este un limbaj de interogare pentru localizarea unei porțiuni dintr-un document XML . Creat inițial pentru a oferi sintaxă și semantică pentru funcțiile comune XPointer și XSL , XPath a fost adoptat rapid de dezvoltatori ca un limbaj de interogare ușor de utilizat.
O expresie XPath este o cale de localizare , alcătuită din pași de localizare (numiți și pași în franceză ). Pașii de locație sunt separați de caracterul „/”.
Etapele de localizare au fiecare trei componente:
Axa indică direcția în care să vă deplasați în arborele XML, în raport cu nodul curent sau de la rădăcină. De exemplu, va child::selecta nodurile copil ale nodului curent. În XPath, când axa nu este specificată, este implicit axa copiilor ( child::). O altă axă utilizată pe scară largă este cea a atributelor, reprezentată cu caracterul at sign ( @). Există în toate cele 13 axe care permit exprimarea relațiilor genealogice sau care iau în considerare ordinea de citire a documentului.
Testul nodului permite selectarea sau nu a nodurilor în funcție de numele sau tipul lor. De exemplu, testul va text()selecta toate nodurile de tip text (în axa considerată).
Predicatii sunt expresii mai complexe; sunt folosite pentru a filtra nodurile selectate de axă și testul nodului. Predicatele sunt scrise între paranteze drepte ("[", "]"). Dacă predicatul se evaluează la adevărat, vor fi selectate nodurile corespunzătoare.
XPath oferă astfel o căutare secvențială pe noduri. Rezultatul evaluării unei expresii XPath este o secvență care conține noduri și valori atomice (texte, booleeni ...).
În funcție de natura (număr, boolean, text) a valorilor selectate, XPath oferă o serie de funcții. Aceste funcții sunt limitate, deoarece sunt destinate mai mult să fie utilizate în predicate decât să efectueze prelucrarea datelor selectate.
Funcțiile care se aplică celor mai utilizate numere sunt: sum (), count () și operatorii aritmetici. Funcțiile care se aplică celor mai utilizate șiruri sunt: substring (), string-length (), concat ().
Luați în considerare următorul document XML:
<?xml version="1.0"?> <racine> <encyclopedie nom="Wikipedia" site="http://fr.wikipedia.org/"> <article nom="XPath"> <auteurs> <auteur> <nom>Dupont</nom> </auteur> <auteur> <nom>Dubois</nom> </auteur> </auteurs> </article> </encyclopedie> </racine>Expresia XPath | Rezultat |
---|---|
/ | selectează un nod „fals“, numit element rădăcină , care cuprinde întregul document, inclusiv DOCTYPE <versiunea? xml = „1.0“?> |
/ rădăcină | selectați nodul gol, deoarece nu există un element „rădăcină” (ci „rădăcină” ) |
// articol | selectează toate elementele „articolului” documentului oriunde s-ar afla |
/ rădăcină / enciclopedie | selectează singurul element "enciclopedie" , deoarece este aici singurul copil "rădăcină" care poartă acest nume |
// articol [@ name = 'XPath'] | selectează toate elementele „articol” ale documentului oriunde s-ar afla, având un atribut „nume” a cărui valoare este „XPath” |
Toate aceste expresii XPath sunt absolute (încep cu un caracter „/” ), adică dau același rezultat indiferent de context. Următoarele expresii sunt relative . Dacă contextul actual este singurul element de „enciclopedie” , acestea dau:
Expresia XPath | Rezultat |
---|---|
articol | selectați elementul „articol” |
rădăcină | nu selectează nimic, având în vedere contextul |
articol [1] / autori / autor [2] | selectează al doilea autor (Dubois) al primului articol |
articol [număr (articol / autori / autor)> 1] | selectați articolele care au cel puțin 2 autori |
../rădăcină | selectează elementul „rădăcină” , deoarece este părintele elementului curent |
Rezultatul acestor selecții va depinde de natura sarcinii:
Sintaxa XPath a evoluat pentru a deveni mai completă. XPath 2.0 standard (în) , recomandare W3C de atunci23 ianuarie 2007descrie un subset comun al limbajelor XSLT 2.0 și XQuery 1.0, constituind, de asemenea, un limbaj de interogare XML autonom mai bogat decât prima versiune inclusă în XSLT 1.
XPath este limbajul de interogare de bază în XSLT . Determină dacă se aplică o regulă șablon (prin atributul său de potrivire ) și poate fi, de asemenea, utilizată pentru a extrage conținut din documentul XML transformat de programul XSLT.
XPath poate fi folosit ca limbaj de interogare în bazele de date XML , adesea ca subset al XQuery .
XPath este folosit ca limbaj de expresie a regulilor în Schematron și parțial și în XML Schema .
XPath poate fi utilizat din linia de comandă, aici cu comanda xpath care provine din modulul Perl XML :: XPath . Aici, căutăm adresele URL ale articolelor dintr-un flux de sindicalizare Atom :
$ xpath -e '//link[@rel="alternate"]/@href' feed.atom
Un alt exemplu, cu xfind pentru a căuta fișiere (XML folosit pentru a modela atributele fișierului):
$ ./find -xpath '/bin/*[@size > /bin/bash/@size]' /bin/ipv6calc /bin/rpm