Ultimele tutoriale de dezvoltare web
 

Sintaxa XPath


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