Примеры работы с xPath

Если выполнить запрос как //book[last()], то вы получите только последний узел. В данном случае такой запрос аналогичен //book[3].

Запрос: //title/..

Результат:

<book>
    <title>Learning PHP, MySQL and JavaScript With jQuery, CSS and HTML5</title>
    <author>Робин Никсон</author>
    <price>1158 руб.</price>
    <content>
      <rating>4.3</rating>
      <description>The fully revised, updated and extended 4th edition of the hugely popular web development book : includes CSS, HTML5, jQuery and the mysqli extension.</description>
    </content>
  </book>
<journal>
    <title>PHP World</title>
    <author>Anton Bekon</author>
    <price>412 руб.</price>
  </journal>
<book>
    <title>PHP. Быстрый старт</title>
    <author>Каллум Хопкинс</author>
    <price>348 руб.</price>
    <content>
      <rating>3.5</rating>
      <description>Все, что нужно знать о PHP в одной книге!</description>
    </content>
  </book>
<book>
    <title>Modern PHP: New Features and Good Practices</title>
    <author>Джош Локхарт</author>
    <price>834 руб.</price>
    <content>
      <rating>5</rating>
      <description>PHP is experiencing a renaissance, though it may be difficult to tell with all of the outdated PHP tutorials online.</description>
    </content>
</book>

При данном запросе мы получаем родителя элемента <title>, т.е. все узлы с именем <book> и <journal>.

Запрос: //book/author[text() = «Каллум Хопкинс»]

Результат:

<author>Каллум Хопкинс</author>

Возвращается элемент <author> с содержимым «Каллум Хопкинс».

Запрос: //book/content/rating[text()<5]

Результат:

<rating>4.3</rating>
<rating>3.5</rating>

Как видите, были возвращены все элементы <rating> со значением меньше 5.

Запрос: //book[position()<3]

Результат:

<book>
    <title>Learning PHP, MySQL and JavaScript With jQuery, CSS and HTML5</title>
    <author>Робин Никсон</author>
    <price>1158 руб.</price>
    <content>
      <rating>4.3</rating>
      <description>The fully revised, updated and extended 4th edition of the hugely popular web development book : includes CSS, HTML5, jQuery and the mysqli extension.</description>
    </content>
  </book>
<book>
    <title>PHP. Быстрый старт</title>
    <author>Каллум Хопкинс</author>
    <price>348 руб.</price>
    <content>
      <rating>3.5</rating>
      <description>Все, что нужно знать о PHP в одной книге!</description>
    </content>
</book>

Здесь происходит выбор первых двух узлов <book>.

Запрос: magazine/*/price

Результат:

<price>1158 руб.</price>
<price>412 руб.</price>
<price>348 руб.</price>
<price>834 руб.</price>

Таким образом мы вернули все элементы <price>, который были найдены в корневом узле <magazine>.

Примеров можно написать огромное множество. Я лишь показал часть возможностей по работе с xPath. В самом конце статьи прикрепляю полезные ссылки на ресурсы от Microsoft.

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

Полезные ссылки

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: