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

Если Вы читаете данную статью, то наверное уже слышали про язык запросов xPath. А если все-таки не слышали, то xPath — это язык запросов к элементам XML-документа (стандарт консорциума W3C). С помощью указанного языка запросов можно легко реализовать навигацию по DOM в XML. Проще говоря, xPath использует более компактный синтаксис, который отличается от принятого в XML.

Описывать более подробно про язык xPath не имеет смысла, т.к. в интернете Вы найдете множество литературы на данную тему. Мне же хочется рассмотреть различные примеры работы с данным языком запросов.

Кстати, если Вы еще не поняли или не знали, то можно работать с HTML-документом как с объектом DOM. Например, недавно я писал парсер для своих нужд, который собирал некоторую информацию с сайта, далее ее сохранял в текстовые файлы.

Примечание. В PHP от версии 5 содержится класс DOMXPath (поддержка xPath 1.0), в котором как раз реализована работа с DOM.

Итак, перейдем к разбору примеров работы с xPath.

Это наши тестовые данные XML-документа.

<magazine>
  <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>
</magazine>

Запрос: //book

Результат:

<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>
    <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>

Здесь получены все узлы с именем <book>.

Запрос: //book[2]

<book>
    <title>PHP. Быстрый старт</title>
    <author>Каллум Хопкинс</author>
    <price>348 руб.</price>
    <content>
      <rating>3.5</rating>
      <description>Все, что нужно знать о PHP в одной книге!</description>
    </content>
</book>

Здесь получен только второй узел <book>.

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

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

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

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