Axes (ejes) XPath

Documento de ejemplo XML

Usaremos este documento XML en los siguientes ejemplos:

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>
<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

Eje de XPath

El eje puede definir un conjunto de nodos en relación con el nodo actual.

Nombre del eje Resultados
ancestor Elegir todos los antepasados del nodo actual (padre, abuelo, etc.).
ancestor-or-self Elegir todos los antepasados del nodo actual (padre, abuelo, etc.) y el nodo actual en sí mismo.
attribute Seleccione todas las propiedades del nodo actual
child Seleccione todos los elementos hijos del nodo actual
descendant Elegir todos los elementos descendientes del nodo actual (hijos, nietos, etc.).
descendant-or-self Elegir todos los elementos descendientes del nodo actual (hijos, nietos, etc.) y el nodo actual en sí mismo.
following Elegir todos los nodos después de la etiqueta de finalización del nodo actual en el documento.
namespace Elegir todos los nodos de espacio de nombres del nodo actual.
parent Elegir el nodo padre del nodo actual.
preceding Elegir todos los nodos antes de la etiqueta de inicio del nodo actual en el documento.
preceding-sibling Elegir todos los nodos同级节点之前的当前节点。
self Elegir el nodo actual.

Expresión de la ruta de posición

La ruta de posición puede ser absoluta o relativa.

La ruta absoluta comienza con una barra inclinada ( / ), mientras que la ruta relativa no es así. En ambos casos, la ruta de posición incluye uno o más pasos, cada uno separado por una barra:

Ruta de posición absoluta:

/step/step/...

Ruta de posición relativa:

step/step/...

Cada paso se calcula basándose en los nodos dentro del conjunto de nodos actual

Paso (step) incluye:

Eje (axis)
Definir la relación de árbol entre el nodo seleccionado y el nodo actual
Prueba de nodo (node-test)
Identificar nodos dentro de un eje específico
Cero o más predicados (predicado)
Refinar más profundamente el conjunto de nodos seleccionados

Sintaxis del paso:

Nombre de eje::prueba de nodo [predicado]

Ejemplo

Ejemplos Resultados
child::book Seleccione todos los nodos book que pertenecen a los elementos hijos del nodo actual
attribute::lang Seleccione la propiedad lang del nodo actual
child::* Seleccione todos los elementos hijos del nodo actual
attribute::* Seleccione todas las propiedades del nodo actual
child::text() Seleccione todos los nodos hijos de texto del nodo actual
child::node() Seleccione todos los nodos hijos del nodo actual
descendant::book Seleccione todos los descendientes book del nodo actual
ancestor::book Seleccione todos los antepasados book del nodo actual
ancestor-or-self::book Seleccione todos los antepasados book del nodo actual y el nodo actual (si este nodo es un nodo book)
child::*/child::price Seleccione todos los nodos hijos price del nodo actual.