Примеры XPath
- Предыдущая страница Операторы XPath
- Следующая страница Резюме XPath
В этом разделе мы рассмотрим базовые синтаксисы XPath на примерах.
XML-пример
Мы будем использовать этот XML-документ в следующем примере:
"books.xml" :
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book category="COOKING"> <title lang="en"> Everyday Italian</title> <author>Джия Де Лаурентис</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Гарри Поттер</title> <author>Дж. К. Роулинг</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>
Загрузка документа XML
Все современные браузеры поддерживают метод XMLHttpRequest для загрузки документов XML.
Код для большинства современных браузеров:
var xmlhttp=new XMLHttpRequest()
Код для старых браузеров Microsoft (IE 5 и 6):
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
Выбор узлов
К сожалению, Internet Explorer и другие браузеры обрабатывают XPath по-разному.
В нашем примере приведен код, подходящий для большинства популярных браузеров.
Internet Explorer использует метод selectNodes() для выбора узлов из документа XML:
xmlDoc.selectNodes(xpath);
Firefox, Chrome, Opera и Safari используют метод evaluate() для выбора узлов из документа XML:
xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE, null);
Выбор title первого book
В следующем примере выбирается элемент title первого book в элементе bookstore:
/bookstore/book[1]/title
Здесь есть проблема. В предыдущем примере в IE и других браузерах выводятся разные результаты.
Версии IE5 и выше считают [0] первым узлом, в то время как по стандартам W3C, это应该是 [1].
Чтобы решить проблему с [0] и [1] в IE5+, можно установить языковой выбор (SelectionLanguage) для XPath.
В следующем примере выбирается элемент title первого book в элементе bookstore:
xml.setProperty("SelectionLanguage","XPath"); xml.selectNodes("/bookstore/book[1]/title");
Выбор всех цен
В следующем примере выбираются все тексты в элементах price:
/bookstore/book/price/text()
Выбор элементов price с ценой выше 35
В следующем примере выбираются все элементы price с ценой выше 35:
/bookstore/book[price>35]/price
Выбор элементов title с ценой выше 35
В следующем примере выбираются все элементы title с ценой выше 35:
/bookstore/book[price>35]/title
- Предыдущая страница Операторы XPath
- Следующая страница Резюме XPath