Expresia căii XPath
Folosit pentru a selecta noduri sau seturi de noduri într-un document XML
1. Terminologie: Nod: 7 tipuri: elemente, atribute, text, spații de nume, comenzi de procesare, comentarii, noduri de document (rădăcină)
2. Relații de noduri: Părinte, Copii, Frate, Strămoș, Descendent
3. Expresia traseului
Nume nod Nume nod, selectați toate nodurile copil ale acestui nod Exemplu: nod copil Nodul copil din nodul curent nu include nodurile nepoților și cele inferioare
/ 从根节点选取 例:/root/childnode/grandsonnode
Reprezintă toate nodurile descendente, de exemplu ://childnode Toate nodurile descendente denumite childnodes
. Reprezintă nodul curent Exemplu: ./childnode reprezintă nodul copil al nodului curent
.. Reprezentați nodul părinte. Exemplu: /nearnode reprezintă nodul copil nearnode al nodului părinte
@ Alege atributul /root/childnode/@id pentru a reprezenta toate seturile de noduri cu atribute id în childnode
4. Predicate
Predicatele pot impune unele restricții asupra setului de noduri, făcând selecția mai precisă
/root/book[1] 节点集中的第一个节点
/root/book[last()] 节点集中最后一个节点
/root/book[position() - 1] 节点集中倒数第二个节点集
/root/book[position() < 5] 节点集中前五个节点集
/root/book[@id] 节点集中含有属性id的节点集
/root/book[@id='chinese'] 节点集中id属性值为chinese的节点集
/root/book[price > 35]/title 节点集中book的price元素值大于35的title节点集
5. Wildcard-uri: Wildcard-urile (*,@*,node(), text()) sunt de asemenea suportate în calea XPath.
Exemplu: /bookstore/*
titlu[@*]
6. Axa XPath
Definiți un set de noduri în raport cu nodul curent
Strămoș Toate Nodurile Strămoș
Atribuie toate nodurile de atribut
Toate elementele copilului
descendenți toți nodurile descendente (fii, nepoți...). )
Urmând toate nodurile după finalizarea marcării înaintea tuturor nodurilor înainte de a începe etichetarea
following-sibling încheie toate nodurile frate după etichetă
precedând-fratele tuturor nodurilor surori înainte de a începe etichetarea
spațiu de nume: toate nodurile din spațiul curent
Părinte părinte
Nodul de curent propriu
Utilizare: Nume axă: Test Nod [Predicat]
De exemplu: ancestor::book
copil::text()
7. Operatori
| Fuziunea a două seturi de noduri Exemplu: /root/book[1] | /rădăcină/carte[3]
+,-,*,dev,mod
=,!=,<,>,<=,>=
sau, și sau și |