Примеры работы с 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.