xpath                
            Ubicación de caminos y ejes
        
        
            
    Buscar..
Observaciones
 Una ruta de ubicación de XPath es una serie de pasos de ubicación separados por un carácter / : 
step1/step2/step3
  Un paso de ubicación contiene un eje , una prueba de nodo y una lista opcional de predicados . El eje y la prueba de nodo están separados por dos caracteres de dos puntos :: . Los predicados están encerrados entre corchetes: 
axis::nodeTest[predicate1][predicate2]
  La evaluación de una ruta de ubicación comienza con un conjunto de nodos que contiene el nodo de contexto dado por el contexto de la expresión, o el nodo raíz , si la ruta de ubicación comienza con un / . En cada paso, cada nodo N en el conjunto de nodos original se reemplaza con el conjunto de nodos que 
- Se puede llegar desde N siguiendo el eje dado,
 - coincide con la prueba de nodo , y
 - coincide con todos los predicados .
 
El resultado de una expresión de ruta de ubicación es el conjunto final de nodos obtenido después de procesar todos los pasos de ubicación .
Atravesando elementos infantiles
 Recorrido desde el nodo raíz a un elemento descendiente utilizando el eje child : 
/child::html/child::body/child::div/child::span
  Dado que el eje child es el eje predeterminado, se puede abreviar como: 
/html/body/div/span
        Atravesando a todos los descendientes
 Los ejes descendant y descendant-or-self pueden usarse para encontrar todos los elementos descendientes de un nodo a cualquier profundidad. En contraste, el eje child solo atraviesa niños inmediatos. 
/child::html/descendant::span
/child::html/descendant-or-self::*
  La barra doble // es un acceso directo para /descendant-or-self::node()/ . Entonces las siguientes expresiones son equivalentes: 
table//td
child::table/descendant-or-self::node()/child::td
child::table/descendant::td
table/descendant::td
        Travesía antepasados
 El eje parent contiene solo el padre de un nodo. La siguiente expresión selecciona el elemento html tomando un desvío sobre el elemento del body : 
/child::html/child::body/parent::html
  .. es un acceso directo para parent::node() 
 Los ejes ancestor y ancestor-or-self atraviesan todos los antepasados de un nodo. La siguiente expresión devuelve todos los elementos div que son ancestros del nodo de contexto: 
ancestor::div
        El eje "yo"
 El eje self solo contiene el nodo de contexto. La expresión . es un acceso directo para self::node() y siempre coincide con el nodo de contexto. El . El acceso directo es útil para enumerar descendientes del nodo de contexto. Las siguientes expresiones son equivalentes: 
.//span
self::node()/descendant-or-self::node()/child::span
descendant::span
  El eje self puede ser útil en los predicados de XPath 1.0. Por ejemplo, para seleccionar todos los hijos h1 , h2 y h3 del nodo de contexto: 
*[self::h1 or self::h2 or self::h3]
        Atravesando nodos siguientes y anteriores
 Los following-sibling ejes following-sibling y following-sibling preceding-sibling contienen los hermanos antes o después del nodo de contexto, y los ejes following y preceding contienen todos los nodos en el documento antes o después del nodo de contexto, pero: 
- Ninguno de estos ejes contiene atributos o nodos de espacio de nombres.
 -  El 
followingeje no contiene descendientes. -  El eje 
precedingno contiene ningún ancestro. 
Ejemplos:
following::span[1]
following-sibling::*[last()]
        Atravesando nodos de atributo y espacio de nombres
 Los ejes de attribute y namespace contienen todos los nodos de atributo y espacio de nombres de un elemento. El atajo @ representa attribute:: , por lo que los siguientes son equivalentes: 
child::div/attribute::class
div/@class