Expresión de ruta XPath
Usado para seleccionar nodos o conjuntos de nodos en un documento XML
1. Terminología: Nodo: 7 tipos: elementos, atributos, texto, espacios de nombres, comandos de procesamiento, comentarios, nodos de documento (raíz)
2. Relaciones de nodo: Padre, Hijos, Hermano, Antepasado, Descendiente
3. Expresión de trayectoria
nombre del nodo nombre nombre del nodo, selecciona todos los nodos hijos de este nodo Ejemplo: nodo hijo El nodo hijo nodo en el nodo actual no incluye los nodos de nietos y inferiores
/ 从根节点选取 例:/root/childnode/grandsonnode
Representa todos los nodos descendientes, por ejemplo ://childnode. Todos los nodos descendientes llamados childnodes
. Representa el nodo actual Ejemplo: ./childnode representa el childnode del nodo actual
.. Representa el nodo padre Ejemplo: /nearnode representa el nodo hijo de nearnode del nodo padre
@ Elige el atributo /root/childnode/@id para representar todos los conjuntos de nodos con atributos id en childnode
4. Predicados
Los predicados pueden imponer algunas restricciones al conjunto de nodos, haciendo la selección más 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. Comodines: También se admiten comodines (*,@*,nodo(), text()) en la ruta XPath.
Ejemplo: /bookstore/*
título[@*]
6. Eje XPath
Defina un conjunto de nodos relativos al nodo actual
Ancestro todos los nodos ancestros
atribuye todos los nodos de atributo
hijo todos los elementos hijos
descendientes todos los nodos descendientes (hijos, nietos...). )
siguiendo todos los nodos tras terminar la marcaje precediendo a todos los nodos antes de empezar a etiquetar
Following-sibling termina todos los nodos hermanos después de la etiqueta
precediendo-hermano a todos los nodos hermanos antes de empezar a etiquetar
Espacio de nombres: todos los nodos en el espacio de nombres actual
Padre padre
Nodo de corriente propia
Uso: Eje Nombre: Prueba de nodo [Predicado]
Por ejemplo: ancestro::libro
niño::texto()
7. Operadores
| Fusión de dos conjuntos de nodos Ejemplo: /root/book[1] | /raíz/libro[3]
+,-,*,dev,mod
=,!=,<,>,<=,>=
o, y o y |