Ejemplo de XPath
- Página anterior Operadores XPath
- Página siguiente Introducción a XSLT
En esta sección, vamos a aprender algunos fundamentos de la sintaxis de 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 principales.
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 títulos
El siguiente ejemplo selecciona todos los nodos title:
/bookstore/book/title
Seleccione el título del primer book
El siguiente ejemplo selecciona el nodo title del primer book bajo el elemento bookstore:
/bookstore/book[1]/title
Aquí hay un problema. El ejemplo anterior produce resultados diferentes en IE y otros navegadores.
IE5 y versiones superiores consideran [0] como el primer nodo, mientras que según el estándar de W3C, debería ser [1].
Para resolver el problema de [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 bajo el elemento bookstore:
xml.setProperty("SelectionLanguage","XPath"); xml.selectNodes("/bookstore/book[1]/title");
Seleccione todas las precios
El siguiente ejemplo selecciona todos los textos del nodo 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
Selección de 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 Introducción a XSLT