Ejemplos XPath
- Página anterior Operadores XPath
- Página siguiente Resumen de XPath
En esta sección, aprendamos algunos elementos básicos de la sintaxis XPath a través de ejemplos.
Documento de ejemplo XML
Vamos a usar este documento XML en los siguientes ejemplos:
"books.xml" :
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">XQuery Kick Start</title> <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"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
Cargar documento XML
Todos los navegadores modernos admiten la carga de documentos XML utilizando XMLHttpRequest.
Código para la mayoría de los navegadores modernos:
var xmlhttp=new XMLHttpRequest()
Código para navegadores antiguos de Microsoft (IE 5 y 6):
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
Seleccione nodos
Desafortunadamente, Internet Explorer y otros procesan XPath de manera diferente.
En nuestro ejemplo, se incluye código compatible con la mayoría de los navegadores populares.
Internet Explorer utiliza el método selectNodes() para seleccionar nodos de un documento XML:
xmlDoc.selectNodes(xpath);
Firefox, Chrome, Opera y Safari utilizan el método evaluate() para seleccionar nodos de un documento XML:
xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE, null);
Seleccione todos los title
El siguiente ejemplo selecciona todos los nodos de title:
/bookstore/book/title
Seleccione el título del primer book
El siguiente ejemplo selecciona el nodo title del primer book del elemento bookstore:
/bookstore/book[1]/title
Aquí hay un problema. El ejemplo anterior produce resultados diferentes en IE y otros navegadores.
IE5 y versiones posteriores consideran [0] como el primer nodo, mientras que según el estándar de W3C, debería ser [1].
Para resolver problemas con [0] y [1] en IE5+, se puede establecer la selección de lenguaje (SelectionLanguage) para XPath.
El siguiente ejemplo selecciona el nodo title del primer book del elemento bookstore:
xml.setProperty("SelectionLanguage","XPath"); xml.selectNodes("/bookstore/book[1]/title");
Seleccione todas las precios
El siguiente ejemplo selecciona todo el texto de los nodos price:
/bookstore/book/price/text()
Seleccione los nodos price con un precio superior a 35
El siguiente ejemplo selecciona todos los nodos price con un precio superior a 35:
/bookstore/book[price>35]/price
Seleccione los nodos title con un precio superior a 35
El siguiente ejemplo selecciona todos los nodos title con un precio superior a 35:
/bookstore/book[price>35]/title
- Página anterior Operadores XPath
- Página siguiente Resumen de XPath