XPath foloseste expresii de cale pentru a selecta noduri sau nod seturi într-un document XML. Nodul este selectat urmând o cale sau pași.
Exemplu Documentul XML
Vom folosi următorul document XML în exemplele de mai jos.
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book>
<title lang="en">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="en">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
selectarea Nodurile
XPath foloseste expresii de cale pentru a selecta nodurile într-un document XML. Nodul este selectat urmând o cale sau pași. Expresiile cale cele mai utile sunt enumerate mai jos:
Expresie | Descriere |
---|---|
nodename | Selectează toate nodurile cu numele „ nodename “ |
/ | Selectează din nodul rădăcină |
// | Selectează nodurile din documentul de la nodul curent, care se potrivesc selecției, indiferent unde acestea sunt |
. | Selectează nodul curent |
.. | Selectează părintele nodului curent |
@ | selectează atribute |
În tabelul de mai jos am enumerat câteva expresii de cale și rezultatul expresiile:
Expresia Calea | Rezultat |
---|---|
librărie | Selectează toate nodurile cu numele "bookstore" |
/librărie | Selectează librărie element rădăcină Note: În cazul în care traseul începe cu o bară oblică ( / ) reprezintă întotdeauna o cale absolută la un element! |
librărie / carte | Selectează toate elementele de carte care sunt copii de librărie |
//carte | Selectează toate elementele de carte, indiferent dacă acestea sunt în documentul |
librărie // carte | Selectează toate elementele de carte care sunt descendent al elementului librărie, indiferent de locul unde se află sub elementul de librărie |
// @ lang | Selectează toate atributele care sunt numite lang |
predicate
Predicate sunt utilizate pentru a găsi un nod specific sau un nod care conține o anumită valoare.
Predicate sunt întotdeauna încorporate între paranteze drepte.
În tabelul de mai jos am enumerat câteva expresii de cale cu predicate și rezultatul expresiile:
Expresia Calea | Rezultat |
---|---|
/ Librărie / carte [1] | Selectează primul element de carte, care este copilul elementului librărie. Note: În IE 5,6,7,8,9 primul nod este [0], dar în conformitate cu W3C, este [1]. Pentru a rezolva această problemă în IE, setați SelectionLanguage la XPath: In JavaScript: xml . setProperty("SelectionLanguage","XPath") ; |
/ librărie / carte [ last() ] | Selectează elementul de carte, care este ultimul copil al elementului librărie |
/ librărie / carte [ last() -1] | Selectează o carte, dar ultimul element care este copilul elementului librărie |
/ librărie / carte [ position() <3] | Selectează primele două elemente de carte care sunt copii ale elementului de librărie |
// titlu [@lang] | Selectează toate elementele din titlu, care au un atribut numit lang |
// titlu [@ lang = 'en'] | Selectează toate elementele de titlu care au un atribut „lang“ , cu o valoare de "en" |
/bookstore/book[price>35.00] | Selectează toate elementele de carte ale elementului librărie care au un element de preț cu o valoare mai mare de 35,00 |
/bookstore/book[price>35.00]/title | Selectează toate elementele din titlu ale elementelor de carte ale elementului librărie care au un element de preț cu o valoare mai mare de 35,00 |
Selectarea Necunoscut Nodurile
wildcard XPath poate fi utilizat pentru a selecta nodurile XML necunoscute.
wildcard | Descriere |
---|---|
* | Meciuri din orice nod element de |
@* | Meciuri din orice nod atribut |
node() | Meciuri din orice nod de orice fel |
În tabelul de mai jos am enumerat câteva expresii de cale și rezultatul expresiile:
Expresia Calea | Rezultat |
---|---|
/librărie/* | Selectează toate elementul copil nodurile elementului librărie |
// * | Selectează toate elementele din document |
//titlu[@*] | Selectează toate elementele din titlu, care au cel puțin un atribut de orice fel |
Selectarea mai multe căi
Prin utilizarea | operatorul într-o expresie XPath puteți selecta mai multe căi.
În tabelul de mai jos am enumerat câteva expresii de cale și rezultatul expresiile:
Expresia Calea | Rezultat |
---|---|
// carte / titlu | // carte / preț | Selectează toate elementele din titlu și prețul tuturor elementelor de carte |
// titlu | //Preț | Selectează toate elementele din titlu și prețul în documentul |
/ Librărie / carte / titlu | //Preț | Selectează toate elementele de titlu ale elementului de carte a elementului librărie și toate elementele de preț în documentul |