XPath Examples
En esta sección, aprenderemos algunos conceptos básicos de la sintaxis de XPath mediante ejemplos.
Documento de ejemplo XML
Usaremos este documento XML en los ejemplos siguientes:
"books.xml":
<bookstore>
<book category="COOKING">
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="WEB">
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
。
Cargar documento XML
Todos los navegadores modernos admiten el uso de XMLHttpRequest para cargar documentos XML.
Código para la mayoría de los navegadores modernos:
Código para los antiguos navegadores de Microsoft (IE 5 y 6):
Seleccionar nodos
Lamentablemente, Internet Explorer y otros navegadores manejan XPath de forma diferente.
En nuestros ejemplos se incluye código que funciona en la mayoría de los navegadores principales.
Internet Explorer usa el método selectNodes() para seleccionar nodos de un documento XML:
Firefox, Chrome, Opera y Safari usan el método evaluate() para seleccionar nodos de un documento XML:
Seleccionar todos los title
El siguiente ejemplo selecciona todos los nodos title:
Seleccionar el title del primer book
El siguiente ejemplo selecciona el title del primer nodo book dentro del elemento bookstore:
Aquí hay un problema. El ejemplo anterior produce resultados diferentes en IE y en otros navegadores.
IE5 y versiones posteriores consideran
¡Una solución!
Para resolver el problema de
El siguiente ejemplo selecciona el title del primer nodo book dentro del elemento bookstore:
Ejemplo
xml.selectNodes("/bookstore/book[1]/title");
Pruébalo »
Seleccionar todos los precios
El siguiente ejemplo selecciona todo el texto dentro de los nodos price:
Seleccionar los nodos price con precio mayor que 35
El siguiente ejemplo selecciona todos los nodos price cuyo precio sea mayor que 35:
Seleccionar los nodos title con precio mayor que 35
El siguiente ejemplo selecciona todos los nodos title cuyo precio sea mayor que 35:
Otras extensiones