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 |