Espressione del percorso XPath
Utilizzato per selezionare nodi o insiemi di nodi in un documento XML
1. Terminologia: Nodo: 7 tipi: elementi, attributi, testo, namespace, comandi di elaborazione, commenti, nodi documenti (radice)
2. Relazioni tra i nodi: Genitore, Figli, Fratello, Antenato, Discendente
3. Espressione del percorso
nome nodo nome nodo, seleziona tutti i nodi figli di questo nodo Esempio: nodo figlio Il nodo figlio nel nodo corrente non include i nodi dei nipoti e inferiori
/ 从根节点选取 例:/root/childnode/grandsonnode
Rappresenta tutti i nodi discendenti, ad esempio ://childnode. Tutti i nodi discendenti chiamati childnodes
. Rappresenta il nodo corrente Esempio: ./childnode rappresenta il childnode del nodo corrente
.. Rappresenta il nodo genitore Esempio: /nearnode rappresenta il nodo nearnode figlio del nodo genitore
@ Scegli l'attributo /root/childnode/@id per rappresentare tutti i set di nodi con attributi id in childnode
4. Predicati
I predicati possono imporre alcune restrizioni all'insieme di nodi, rendendo la selezione più precisa
/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. Carte jolly: Le carte jolly (*,@*,nodo(), text()) sono supportate anche nel percorso XPath.
Esempio: /bookstore/*
titolo[@*]
6. Asse XPath
Definisci un insieme di nodi rispetto al nodo corrente
Antenati tutti i nodi antenati
Attribue tutti i nodi attributi
Figlio Tutti gli elementi Figlio
discendenti tutti i nodi discendenti (figli, nipoti...). )
Seguendo tutti i nodi dopo aver terminato la marcatura precedendo tutti i nodi prima di iniziare il taggaggio
Following-sibling termina tutti i nodi fratelli dopo il tag
precedendo-fratello tutti i nodi fratelli prima di iniziare a taggare
namespace: tutti i nodi nello namespace corrente
genitore genitore
nodo a corrente autonoma
Utilizzo: Nome dell'asse: Test del nodo [Predicato]
Per esempio: ancestor::book
bambino::testo()
7. Operatori
| Fusione di due insiemi di nodi Esempio: /root/book[1] | /radice/libro[3]
+,-,*,dev,mod
=,!=,<,>,<=,>=
oppure, e oppure e |