что такое xpath xml

Примеры xpath-запросов к html

Создание запроса к узлам веб-страниц

Предлагаю вашему вниманию небольшую лабораторную работу, в ходе которой я продемонстрирую создание xpath запросов к веб-странице. Вы сможете повторить приведенные мной запросы и, самое главное, попробуете выполнить свои. Я надеюсь, что благодаря этому статья будет одинаково интересна новичкам и программистам знакомым с xpath по xml.

Для лабораторной нам понадобятся:
— веб-страница xhtml;
— браузер Mozilla Firefox с дополнениями;
— firebug;
— firePath;
(вы можете использовать любой другой браузер с визуальной поддержкой xpath)
— немного времени.

В качестве веб-страницы для проведения эксперимента предлагаю главную страницу сайта консорциума всемирной паутины (‘http://w3.org’). Именно эта организация разрабатывает языки xquery(xpath), спецификацию xhtml и многие другие стандарты интернета.

Задача

Получить из xhtml-кода главной страницы w3.org информацию о конференциях консорциума при помощи запросов xpath.
Приступим к написанию xpath запросов.
что такое xpath xml. Смотреть фото что такое xpath xml. Смотреть картинку что такое xpath xml. Картинка про что такое xpath xml. Фото что такое xpath xml

Первый Xpath запрос

Открываем закладку Firepath в FireBug, выделяем с селектором элемент для анализа, нажимаем: Firepath создал xpath запрос к выбранному элементу.

Если вы выделили заголовок первого события, то запрос будет таким:

После удаления лишних индексов запрос станет соответствовать всем элементам типа «заголовок».

Firepath подсвечивает элементы, которые соответствуют запросу. Вы можете в реальном времени увидеть, какие узлы документа соответствуют запросу.

что такое xpath xml. Смотреть фото что такое xpath xml. Смотреть картинку что такое xpath xml. Картинка про что такое xpath xml. Фото что такое xpath xml

Идем дальше. Создаем запросы для поиска мест проведения конференций и их спонсоров либо с помощью селектора, либо модифицировав первый запрос.

Запрос для получения информации о местах проведения конференций:
.//*[@id=’w3c_home_upcoming_events’]/ul/li/div/p[2]

Так мы получим список спонсоров:
.//*[@id=’w3c_home_upcoming_events’]/ul/li/div/p[3]

Синтаксис xpath

Давайте вернемся к созданным запросам и разберемся в том, как они устроены.
Рассмотрим подробно первый запрос

что такое xpath xml. Смотреть фото что такое xpath xml. Смотреть картинку что такое xpath xml. Картинка про что такое xpath xml. Фото что такое xpath xml

В этом запросе я выделил три части для демонстрации возможностей xpath. (Деление на части уловное)

Первая часть
.// — рекурсивный спуск на ноль или более уровней иерархии от текущего контекста. В нашем случае текущий контекст это корень документа

Вторая часть
* — любой элемент,
[@id=’w3c_home_upcoming_events’] – предикат, на основе которого осуществляем поиск узла, имеющего атрибут id равным ‘w3c_home_upcoming_events’. Идентификаторы элементов XHTML должны быть уникальны. Поэтому запрос «любой элемент с конкретным ID» должен вернуть единственный искомый нами узел.

Мы можем заменить * на точное имя узла div в этом запросе
div[@id=’w3c_home_upcoming_events’]

Таким образом, мы спускаемся по дереву документа до нужного нам узла div[@id=’w3c_home_upcoming_events’]. Нас абсолютно не волнует, из каких узлов состоит DOM-дерево и сколько уровней иерархии осталось выше.

Третья часть
/ul/li/div/p/a –xpath-путь до конкретного элемента. Путь состоит из шагов адресации и условия проверки узлов (ul, li и т.д.). Шаги разделяются символом » /»(косая черта).

Коллекции xpath

Не всегда удается получить доступ к интересующему узлу с помощью предиката или шагов адресации. Очень часто на одном уровне иерархии находится насколько узлов одинакового типа и необходимо выбрать «только первые» или «только вторые» узлы. Для таких случаев предусмотрены коллекции.

Коллекции xpath позволяют получить доступ к элементу по его индексу. Индексы соответствуют тому порядку, в котором элементы были представлены в исходном документе. Порядковый номер в коллекциях отсчитывается от единицы.

Исходя из того, что «место проведения» всегда второй параграф после «названия конференции», получаем следующий запрос:
.//*[@id=’w3c_home_upcoming_events’]/ul/li/div/p[2]
Где p[2] – второй элемент в наборе для каждого узла списка /ul/li/div.

Аналогично список спонсоров мы можем получить запросом:
.//*[@id=’w3c_home_upcoming_events’]/ul/li/div/p[3]

Некоторые функции хpath

В хpath существует множество функций для работы с элементами внутри коллекции. Я приведу только некоторые из них.

last():
Возвращает последний элемент коллекции.
Запрос ul/li/div/p[last()] — возвратит последние параграфы для каждого узла списка «ul».
Функция first() не предусмотрена. Для доступа к первому элементу используйте индекс «1».

text():
Возвращает тестовое содержание элемента.
.//a[text() = ‘Archive’] – получаем все ссылки с текстом «Archive».

position() и mod:
position() — возвращает позицию элемента в множестве.
mod — остаток от деления.

Комбинацией данных функций можем получить:
— не четные элементы ul/li[position() mod 2 = 1]
— четные элементы: ul/li[position() mod 2 = 0]

Самостоятельно

Попробуйте получить:
— четные URL ссылки из левого меню «Standards»;
— заголовки всех новостей, кроме первой с главной страницы w3c.org.

Xpath в PHP5

В заключение

На простом примере мы увидели возможности xpath для доступа к узлам веб-страниц.
Xpath является отраслевым стандартом для доступа к элементам xml и xhtml, xslt преобразований.
Вы можете применять его для парсинга любой html-страницы. В случае если исходный html-код содержит значительные ошибки в разметке пропустите его через tidy. Ошибки будут исправлены.

Старайтесь отказаться от регулярных выражений при парсинге веб-страниц в пользу xpath.
Это сделает ваш код проще, понятнее. Вы допустите меньше ошибок. Сократиться время отладки.

Источник

Краткое руководство по XPath

XPath – это невероятно гибкий, мощный, и вместе с тем сравнительно простой инструмент для навигации по документам XML. Предлагаю перевод руководства по XPath, сделанный на основе руководства консорциума W3C.

Краткий справочник по XPath

что такое xpath xml. Смотреть фото что такое xpath xml. Смотреть картинку что такое xpath xml. Картинка про что такое xpath xml. Фото что такое xpath xml

XPath используется для навигации по элементам и атрибутам XML-документа. XPath является одним из основных элементов в стандарте XSLT консорциума W3C.

1 Что такое XPath

Выражения XPath

XPath использует выражения пути для выбора отдельных узлов или набора узлов в документе XML. Эти выражения очень похожи на выражения, которые вы видите, когда работаете с традиционной файловой системой компьютера.

Стандартные функции XPath

XPath включает в себя более 100 встроенных функций. Есть функции для строковых и числовых значений, даты и времени, сравнения узлов и манипулирования QName, управления последовательностями, булевых значений, и многое другое.

XPath используется в XSLT

XPath является одним из основных элементов в стандарте XSLT. Без знания XPath вы не будете иметь возможность создавать XSLT-документы.

XPath является рекомендацией консорциума W3C

XPath стал рекомендацией W3C 16 ноября 1999 года. XPath был разработан для использования в XSLT, XPointer и другом программном обеспечении для разбора (парсинга) документов XML.

2 Терминология XPath

В XPath существует семь видов узлов: элемент, атрибут, текст, пространство имён, инструкции обработки, комментарии и узлы документа. XML-документы обрабатываются в виде деревьев узлов. Верхний элемент дерева называется корневым элементом. Посмотрите на следующий документ XML:

Пример узлов в документе XML выше:

Атомарные значения

Атомарные значения являются узлами, не имеющие детей или родителей. Пример атомарных значений:

Элементы

Элементы – это атомарные значения или узлы.

3 Отношенияузлов

Родитель

Каждый элемент и атрибут имеет одного родителя. В следующем примере элемент «книга» (book) является родителем элементов «название» (title), «автор» (author), «год» (year) и «цена» (price):

Потомки

Узлы элементов могут иметь ноль, один или более потомков. В следующем примере элементы «название», «автор», «год» и «цена» – они все потомки элемента книга:

Элементы одного уровня

Это узлы, которые имеют одного и того же родителя. В следующем примере элементы «название», «автор», «год» и «цена» все являются элементами одного уровня:

Предки

Родитель узла, родитель родителя узла и т.д. В следующем примере предки элемента «название» (title) – это элементы «книга» (book) и «книжный магазин» (bookstore):

Потомки

Дети узла, дети детей узла и т.д. В следующем примере потомками элемента «книжный магазин» являются элементы «книга», «название», «автор», «год» и «цена»:

4 Синтаксис XPath

XPath использует выражения пути для выбора узлов или множества узлов в документе XML. Узел можно выбрать, следуя пути или по шагам. Мы будем использовать следующий XML-документ в приведённых ниже примерах.

Выбор узлов

С помощью выражений XPath для выбора узлов в документе XML можно выбрать узел, следуя пути или шагам. Самые полезные выражения пути перечислены ниже:

ВыражениеОписание
имя_узлаВыбирает все узлы с именем имя_узла
/Выбирает от корневого узла
//Выбирает узлы в документе от текущего узла, который соответствует выбору, независимо от того, где они находятся
.Выбирает текущий узел
..Выбирает родителя текущего узла
@Выбирает атрибуты

В приведенной ниже таблице перечислены некоторые пути выражения и результат выполнения выражения:

Выражение XPathРезультат
bookstoreВыбирает все узлы с именем «bookstore»
/bookstoreВыбирает корневой элемент книжного магазина

Примечание: Если путь начинается с косой черты (/), он всегда представляет собой абсолютный путь к элементу!

bookstore/bookВыбирает все элементы «книга» (book), которые являются потомками элемента «книжный магазин» (bookstore)
//bookВыбирает все элементы «книга» независимо от того, где они находятся в документе
bookstore//bookВыбирает все элементы «книга», которые являются потомком элемента «книжный магазин», независимо от того, где они находятся под элементом «книжный магазин»
//@langВыбирает все атрибуты, которые называются «lang»

Предикаты

Предикаты используются для поиска специфического узла или узла, который содержит специфическое значение. Предикаты всегда обрамляются квадратными скобками. В приведённой ниже таблице перечислены некоторые выражения пути с предикатами, и результат выражения:

Выражения XPathРезультат
/bookstore/book[1]Выбирает первый элемент «книга», который является потомком элемента «книжный магазин».

Примечание: В IE 5,6,7,8,9 первый узел имеет индекс [0], но в соответствии с рекомендациями W3C, это [1]. Для решения этой проблемы в IE, задаётся опция «SelectionLanguage» для XPath:

На JavaScript: xml.setProperty(«SelectionLanguage», «XPath»);

/bookstore/book[last()]Выбирает последний элемент «книга» (book), который является дочерним элементом элемента «книжный магазин» (bookstore)
/bookstore/book[last()-1]Выбирает предпоследний элемент «книга», который является дочерним элементом элемента «книжный магазин»
/bookstore/book[position() 35.00]Выбирает все элементы «книга» после элемента «книжный магазин», которые имеют элемент «цена» со значением больше, чем 35.00
/bookstore/book[price>35.00]/titleВыбирает все элементы «название» книги элемента «книжный магазин», которые имеют элемент «цена» со значением больше, чем 35.00

Выбор неизвестных узлов

Специальные символы XPath могут использоваться для выбора неизвестных XML узлов.

WildcardОписание
*Соответствует любому узлу
@*Соответствует узлу-атрибуту
node()Соответствует любому узлу любого типа

В приведённой ниже таблице мы перечислили некоторые пути выражения и результаты выражений:

Выражение путиРезультат
/bookstore/*Выбирает все дочерние узлы элемента «книжный магазин» (bookstore)
//*Выбирает все элементы в документе
//title[@*]Выбирает все элементы «название» (title), которые имеют по крайней мере один атрибут любого вида

Выбор нескольких путей

С помощью оператора | в выражениях XPath вы можете выбрать несколько путей. В таблице ниже перечислены несколько выражений путей и результаты их применения:

Выражение путиРезультат
//book/title | //book/priceВыбирает все элементы «название» (title) И «цена» (price) всех элементов «книга» (book)
//title | //priceВыбирает все элементы «название» (title) И «цена» (price) в документе
/bookstore/book/title | //priceВыбирает все элементы «название» элемента «книга» элемента «книжный магазин» И все элементы «цена» в документе

5 ОсиXPath

Мы будем использовать следующий XML документ далее в примере.

Оси определяют наборы узлов, относительно текущего узла.

Название осиРезультат
ancestorВыбирает всех предков (родителей, прародителей и т.д.) текущего узла
ancestor-or-selfВыбирает всех предков (родителей, прародителей и т.д.) текущего узла и сам текущий узел
attributeВыбирает все атрибуты текущего узла
childВыбирает всех потомков текущего узла
descendantВыбирает всех потомков (детей, внуков и т.д.) текущего узла
descendant-or-selfВыбирает всех потомков (детей, внуков и т.д.) текущего узла и сам текущий узел
followingВыбирает всё в документе после закрытия тэга текущего узла
following-siblingВыбирает все узлы одного уровня после текущего узла
namespaceВыбирает все узлы в данном пространстве имён (namespace) текущего узла
parentВыбирает родителя текущего узла
precedingВыбирает все узлы, которые появляются перед текущим узлом в документе, за исключением предков, узлов атрибутов и узлы пространства имён
preceding-siblingВыбирает всех братьев и сестёр до текущего узла
selfВыбирает текущий узел

6 Выраженияпути выборки

Путь определения местоположения может быть абсолютным или относительным. Абсолютный путь расположения начинается с косой черты (/), а относительный – нет. В обоих случаях путь выборки состоит из одного или нескольких шагов, разделённых косой чертой:

Абсолютный путь расположения:

Относительный путь выборки расположения:

Каждый шаг оценивается по узлам в текущем наборе узлов. Шаг состоит из:

Синтаксис шага выборки такой:

ПримерРезультат
child::bookВыбирает все узлы «книга» (book), которые являются потомками текущего узла
attribute::langВыбирает атрибут «язык» (lang) текущего узла
child::*Выбирает всех потомков текущего узла
attribute::*Выбирает все атрибуты текущего узла
child::text()Выбирает все текстовые узлы текущего узла
child::node()Выбирает всех ближайших потомков текущего узла
descendant::bookВыбирает всех потомков текущего узла
ancestor::bookВыбирает всех предков «книга» (books) текущего узла
ancestor-or-self::bookВыбирает всех предков «книга» (book) текущего узла – и текущий узел, если он также «книга» (book)
child::*/child::priceВыбирает все потомки «цена» (price) через один уровень от текущего узла

7 Операторы XPath

Выражения XPath возвращают как набор узлов, строки, булевы или числовые значения. Ниже представлен список операторов, используемых в выражениях XPath:

Давайте рассмотрим базовый синтаксис XPath на нескольких примерах. Мы будем использовать следующий XML документ «books.xml» в примерах ниже:

Загрузка XML документа

Используйте XMLHttpRequest для загрузки XML документов, который поддерживается большинством современных браузеров:

Код для устаревших браузеров Microsoft (IE 5 и 6):

Выбор узлов

К сожалению, работа с XPath в Internet Explorer и в других браузерах может отличаться. В наших примерах мы будем использовать код, который должен работать в большинстве браузеров. Internet Explorer использует метод «selectNodes()» для выбора узлов XML документа:

Firefox, Chrome, Opera и Safari используют метод evaluate() для выбора узлов из XML документа:

Выбор всех заглавий

Следующий пример выбирает все узлы заголовков:

Выбор заголовка первой книги

Следующий пример выбирает заголовок первого узла «книга» после элемента «книжный магазин» (bookstore):

Выбор всех цен

Следующий пример выбирает текст всех узлов «цена» (price):

Выбирает узлы с ценой >35

Следующий пример выбирает все узлы с ценами выше 35:

Выбор узлов заголовков с ценой >35

Следующий пример выбирает все узлы заголовков с ценой выше 35:

Источник

Краткое руководство по XPath

XPath – это невероятно гибкий, мощный, и вместе с тем сравнительно простой инструмент для навигации по документам XML. Предлагаю перевод руководства по XPath, сделанный на основе руководства консорциума W3C.

Краткий справочник по XPath

что такое xpath xml. Смотреть фото что такое xpath xml. Смотреть картинку что такое xpath xml. Картинка про что такое xpath xml. Фото что такое xpath xml

XPath используется для навигации по элементам и атрибутам XML-документа. XPath является одним из основных элементов в стандарте XSLT консорциума W3C.

1 Что такое XPath

Выражения XPath

XPath использует выражения пути для выбора отдельных узлов или набора узлов в документе XML. Эти выражения очень похожи на выражения, которые вы видите, когда работаете с традиционной файловой системой компьютера.

Стандартные функции XPath

XPath включает в себя более 100 встроенных функций. Есть функции для строковых и числовых значений, даты и времени, сравнения узлов и манипулирования QName, управления последовательностями, булевых значений, и многое другое.

XPath используется в XSLT

XPath является одним из основных элементов в стандарте XSLT. Без знания XPath вы не будете иметь возможность создавать XSLT-документы.

XPath является рекомендацией консорциума W3C

XPath стал рекомендацией W3C 16 ноября 1999 года. XPath был разработан для использования в XSLT, XPointer и другом программном обеспечении для разбора (парсинга) документов XML.

2 Терминология XPath

В XPath существует семь видов узлов: элемент, атрибут, текст, пространство имён, инструкции обработки, комментарии и узлы документа. XML-документы обрабатываются в виде деревьев узлов. Верхний элемент дерева называется корневым элементом. Посмотрите на следующий документ XML:

Пример узлов в документе XML выше:

Атомарные значения

Атомарные значения являются узлами, не имеющие детей или родителей. Пример атомарных значений:

Элементы

Элементы – это атомарные значения или узлы.

3 Отношенияузлов

Родитель

Каждый элемент и атрибут имеет одного родителя. В следующем примере элемент «книга» (book) является родителем элементов «название» (title), «автор» (author), «год» (year) и «цена» (price):

Потомки

Узлы элементов могут иметь ноль, один или более потомков. В следующем примере элементы «название», «автор», «год» и «цена» – они все потомки элемента книга:

Элементы одного уровня

Это узлы, которые имеют одного и того же родителя. В следующем примере элементы «название», «автор», «год» и «цена» все являются элементами одного уровня:

Предки

Родитель узла, родитель родителя узла и т.д. В следующем примере предки элемента «название» (title) – это элементы «книга» (book) и «книжный магазин» (bookstore):

Потомки

Дети узла, дети детей узла и т.д. В следующем примере потомками элемента «книжный магазин» являются элементы «книга», «название», «автор», «год» и «цена»:

4 Синтаксис XPath

XPath использует выражения пути для выбора узлов или множества узлов в документе XML. Узел можно выбрать, следуя пути или по шагам. Мы будем использовать следующий XML-документ в приведённых ниже примерах.

Выбор узлов

С помощью выражений XPath для выбора узлов в документе XML можно выбрать узел, следуя пути или шагам. Самые полезные выражения пути перечислены ниже:

ВыражениеОписание
имя_узлаВыбирает все узлы с именем имя_узла
/Выбирает от корневого узла
//Выбирает узлы в документе от текущего узла, который соответствует выбору, независимо от того, где они находятся
.Выбирает текущий узел
..Выбирает родителя текущего узла
@Выбирает атрибуты

В приведенной ниже таблице перечислены некоторые пути выражения и результат выполнения выражения:

Выражение XPathРезультат
bookstoreВыбирает все узлы с именем «bookstore»
/bookstoreВыбирает корневой элемент книжного магазина

Примечание: Если путь начинается с косой черты (/), он всегда представляет собой абсолютный путь к элементу!

bookstore/bookВыбирает все элементы «книга» (book), которые являются потомками элемента «книжный магазин» (bookstore)
//bookВыбирает все элементы «книга» независимо от того, где они находятся в документе
bookstore//bookВыбирает все элементы «книга», которые являются потомком элемента «книжный магазин», независимо от того, где они находятся под элементом «книжный магазин»
//@langВыбирает все атрибуты, которые называются «lang»

Предикаты

Предикаты используются для поиска специфического узла или узла, который содержит специфическое значение. Предикаты всегда обрамляются квадратными скобками. В приведённой ниже таблице перечислены некоторые выражения пути с предикатами, и результат выражения:

Выражения XPathРезультат
/bookstore/book[1]Выбирает первый элемент «книга», который является потомком элемента «книжный магазин».

Примечание: В IE 5,6,7,8,9 первый узел имеет индекс [0], но в соответствии с рекомендациями W3C, это [1]. Для решения этой проблемы в IE, задаётся опция «SelectionLanguage» для XPath:

На JavaScript: xml.setProperty(«SelectionLanguage», «XPath»);

/bookstore/book[last()]Выбирает последний элемент «книга» (book), который является дочерним элементом элемента «книжный магазин» (bookstore)
/bookstore/book[last()-1]Выбирает предпоследний элемент «книга», который является дочерним элементом элемента «книжный магазин»
/bookstore/book[position() 35.00]Выбирает все элементы «книга» после элемента «книжный магазин», которые имеют элемент «цена» со значением больше, чем 35.00
/bookstore/book[price>35.00]/titleВыбирает все элементы «название» книги элемента «книжный магазин», которые имеют элемент «цена» со значением больше, чем 35.00

Выбор неизвестных узлов

Специальные символы XPath могут использоваться для выбора неизвестных XML узлов.

WildcardОписание
*Соответствует любому узлу
@*Соответствует узлу-атрибуту
node()Соответствует любому узлу любого типа

В приведённой ниже таблице мы перечислили некоторые пути выражения и результаты выражений:

Выражение путиРезультат
/bookstore/*Выбирает все дочерние узлы элемента «книжный магазин» (bookstore)
//*Выбирает все элементы в документе
//title[@*]Выбирает все элементы «название» (title), которые имеют по крайней мере один атрибут любого вида

Выбор нескольких путей

С помощью оператора | в выражениях XPath вы можете выбрать несколько путей. В таблице ниже перечислены несколько выражений путей и результаты их применения:

Выражение путиРезультат
//book/title | //book/priceВыбирает все элементы «название» (title) И «цена» (price) всех элементов «книга» (book)
//title | //priceВыбирает все элементы «название» (title) И «цена» (price) в документе
/bookstore/book/title | //priceВыбирает все элементы «название» элемента «книга» элемента «книжный магазин» И все элементы «цена» в документе

5 ОсиXPath

Мы будем использовать следующий XML документ далее в примере.

Оси определяют наборы узлов, относительно текущего узла.

Название осиРезультат
ancestorВыбирает всех предков (родителей, прародителей и т.д.) текущего узла
ancestor-or-selfВыбирает всех предков (родителей, прародителей и т.д.) текущего узла и сам текущий узел
attributeВыбирает все атрибуты текущего узла
childВыбирает всех потомков текущего узла
descendantВыбирает всех потомков (детей, внуков и т.д.) текущего узла
descendant-or-selfВыбирает всех потомков (детей, внуков и т.д.) текущего узла и сам текущий узел
followingВыбирает всё в документе после закрытия тэга текущего узла
following-siblingВыбирает все узлы одного уровня после текущего узла
namespaceВыбирает все узлы в данном пространстве имён (namespace) текущего узла
parentВыбирает родителя текущего узла
precedingВыбирает все узлы, которые появляются перед текущим узлом в документе, за исключением предков, узлов атрибутов и узлы пространства имён
preceding-siblingВыбирает всех братьев и сестёр до текущего узла
selfВыбирает текущий узел

6 Выраженияпути выборки

Путь определения местоположения может быть абсолютным или относительным. Абсолютный путь расположения начинается с косой черты (/), а относительный – нет. В обоих случаях путь выборки состоит из одного или нескольких шагов, разделённых косой чертой:

Абсолютный путь расположения:

Относительный путь выборки расположения:

Каждый шаг оценивается по узлам в текущем наборе узлов. Шаг состоит из:

Синтаксис шага выборки такой:

ПримерРезультат
child::bookВыбирает все узлы «книга» (book), которые являются потомками текущего узла
attribute::langВыбирает атрибут «язык» (lang) текущего узла
child::*Выбирает всех потомков текущего узла
attribute::*Выбирает все атрибуты текущего узла
child::text()Выбирает все текстовые узлы текущего узла
child::node()Выбирает всех ближайших потомков текущего узла
descendant::bookВыбирает всех потомков текущего узла
ancestor::bookВыбирает всех предков «книга» (books) текущего узла
ancestor-or-self::bookВыбирает всех предков «книга» (book) текущего узла – и текущий узел, если он также «книга» (book)
child::*/child::priceВыбирает все потомки «цена» (price) через один уровень от текущего узла

7 Операторы XPath

Выражения XPath возвращают как набор узлов, строки, булевы или числовые значения. Ниже представлен список операторов, используемых в выражениях XPath:

Давайте рассмотрим базовый синтаксис XPath на нескольких примерах. Мы будем использовать следующий XML документ «books.xml» в примерах ниже:

Загрузка XML документа

Используйте XMLHttpRequest для загрузки XML документов, который поддерживается большинством современных браузеров:

Код для устаревших браузеров Microsoft (IE 5 и 6):

Выбор узлов

К сожалению, работа с XPath в Internet Explorer и в других браузерах может отличаться. В наших примерах мы будем использовать код, который должен работать в большинстве браузеров. Internet Explorer использует метод «selectNodes()» для выбора узлов XML документа:

Firefox, Chrome, Opera и Safari используют метод evaluate() для выбора узлов из XML документа:

Выбор всех заглавий

Следующий пример выбирает все узлы заголовков:

Выбор заголовка первой книги

Следующий пример выбирает заголовок первого узла «книга» после элемента «книжный магазин» (bookstore):

Выбор всех цен

Следующий пример выбирает текст всех узлов «цена» (price):

Выбирает узлы с ценой >35

Следующий пример выбирает все узлы с ценами выше 35:

Выбор узлов заголовков с ценой >35

Следующий пример выбирает все узлы заголовков с ценой выше 35:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *