Los últimos tutoriales de desarrollo web
 

sintaxis de XPath


XPath utiliza expresiones de ruta para seleccionar nodos o conjuntos de nodos en un documento XML. El nodo se selecciona siguiendo una ruta o pasos.


El Ejemplo de documento XML

Vamos a utilizar el siguiente documento XML en los ejemplos siguientes.

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book>
  <title lang="en">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="en">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

Selección de nodos

XPath utiliza expresiones de ruta para seleccionar nodos en un documento XML. El nodo se selecciona siguiendo una ruta o pasos. Las expresiones de ruta más útiles se enumeran a continuación:

Expresión Descripción
nodename Selecciona todos los nodos con el nombre " nodename "
/ Selecciona desde el nodo raíz
// Selecciona los nodos en el documento del nodo actual que coincidan con la selección sin importar dónde se encuentren
. Selecciona el nodo actual
.. Selecciona el padre del nodo actual
@ Selecciona atributos

En la tabla a continuación ofrecemos una lista de algunas expresiones de ruta y el resultado de las expresiones:

expresión de ruta Resultado
librería Selecciona todos los nodos con el nombre de "bookstore"
/librería Selecciona la librería elemento raíz

Note: Si la ruta comienza con una barra ( / ) siempre representa una ruta absoluta a un elemento!

librería / libro Selecciona todos los elementos del libro que son hijos de la librería
//libro Selecciona todos los elementos del libro, no importa dónde se encuentren en el documento
// librería libro Selecciona todos los elementos del libro que son descendiente del elemento de librería, no importa donde estén bajo el elemento de librería
// @ lang Selecciona todos los atributos que se denominan lang

predicados

Los predicados se utilizan para encontrar un nodo específico o un nodo que contiene un valor específico.

Los predicados se incrustan siempre entre corchetes.

En la tabla a continuación ofrecemos una lista de algunas expresiones de ruta con los predicados y el resultado de las expresiones:

expresión de ruta Resultado
/ Librería / libro [1] Selecciona el primer elemento de libro que es el hijo del elemento librería.

Note: En IE 5,6,7,8,9 primer nodo es [0], pero de acuerdo con W3C, es [1]. Para resolver este problema en IE, establecer el SelectionLanguage a XPath:

In JavaScript: xml . setProperty("SelectionLanguage","XPath") ;
/ librería / libro [ last() ] Selecciona el último elemento libro que es el hijo del elemento librería
/ librería / libro [ last() -1] Selecciona el penúltimo libro elemento que es el hijo del elemento librería
/ librería / libro [ position() <3] Selecciona los dos primeros elementos de libros que son hijos del elemento librería
// título [@ lang] Selecciona todos los elementos del título que tienen un atributo llamado lang
// título [@ lang = 'es'] Selecciona todos los elementos del título que tienen un atributo "lang" con un valor de "en"
/bookstore/book[price>35.00] Selecciona todos los elementos del libro del elemento de librería que tiene un elemento de precio con un valor superior a 35.00
/bookstore/book[price>35.00]/title Selecciona todos los elementos del título de los elementos de libros de la librería de elementos que tienen un elemento de precio con un valor superior a 35.00

Selección de nodos Desconocida

comodines XPath se pueden utilizar para seleccionar los nodos XML desconocidos.

Comodín Descripción
* Coincide con cualquier nodo de elemento
@* Coincide con cualquier nodo de atributo
node() Coincide con cualquier nodo de cualquier tipo

En la tabla a continuación ofrecemos una lista de algunas expresiones de ruta y el resultado de las expresiones:

expresión de ruta Resultado
/librería/* Selecciona todos los nodos del elemento hijo del elemento librería
// * Selecciona todos los elementos del documento
//título[@*] Selecciona todos los elementos del título, que presentan al menos un atributo de cualquier tipo

La selección de varios caminos

Al utilizar el | operador en una expresión XPath puede seleccionar varios caminos.

En la tabla a continuación ofrecemos una lista de algunas expresiones de ruta y el resultado de las expresiones:

expresión de ruta Resultado
// libro / título | // libro / precio Selecciona todos los elementos del título y el precio de todos los elementos del libro
// Título | //precio Selecciona todos los elementos título y el precio en el documento
/ Librería / libro / título | //precio Selecciona todos los elementos del título del elemento book del elemento de librería y todos los elementos de precios en el documento