В данной главе на основе некоторых примеров демонстрируется базовый синтаксис XPath.
Пример XML документа
В качестве примера будет использоваться следующий XML документ:
<?xml version="1.0" encoding="UTF-8"?>
<messages>
<note>
<heading lang="ru">Напоминание</heading>
<body>Отправить письмо!</body>
<desk>4</desk>
</note>
<note>
<heading lang="ru">Re: Напоминание</heading>
<body>Письмо отправлено</body>
<desk>7</desk>
</note>
</messages>
Загрузка XML документа
Для загрузки XML документа используется объект XMLHttpRequest, который поддерживается всеми основными браузерами.
var xmlhttp = new XMLHttpRequest();
В старых браузерах Microsoft (IE 5 и 6) используется код:
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
Выбор узлов
К сожалению разные браузеры поддерживают разные способы для работы с XPath.
Chrome, Firefox, Edge, Opera и Safari для выбора узлов используют метод evaluate():
xmlDoc.evaluate(xpath, xmlDoc, null, XpathResult.ANY_TYPE, null);
Internet Explorer использует метод selectNodes():
xmlDoc.selectNodes(xpath);
Выбор всех заголовков
В следующем примере выбираются все узлы heading:
/messages/note/heading
Выбор заголовка первой заметки
В следующем примере выбирается заголовок heading первого узла note элемента messages:
/messages/note[1]/heading
Выбор всех отделов
В следующем примере выбирается текст из всех узлов desk:
/messages/note/desk[text()]
Выбираем отделы с номером больше 4
В следующем примере выбираются все узлы desk, значение которых больше 4:
/messages/note[desk>4]/desk
Выбираем заголовки заметок для отделов с номерами больше 4
В следующем примере выбираются все узлы heading тех узлов note, у элемент desk которых значение больше 4:
/messages/note[desk>4]/heading