Найти тему
Легко в’IT

XPath: как оно работает?

Еще один вопрос, которым любят мучить в основном тестировщиков ну или программистам, которым суждено пойти на какой-то проект родом примерно из медного века - это XPath. Как бы при чем здесь медный век и почему мучить? Да просто по тому, что XPath это про документы в формате XML, а этот формат сейчас потихоньку заменяется на JSON, о чем многие тест-лиды, проводящие интервью даже слышать не желают. Ну что ж, пойдем у них на поводу и я проведу тебе небольшой экскурс в эпоху Древних.

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

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

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>
<book>
<title lang="ru">Букварь</title>
<price>150</price>
</book>

<book>
<title lang="ru">Невероятные приключения поручика Ржевского</title>
<price>300</price>
</book>
</bookstore>

И вот чтобы из такого документа получить цену букваря, нам надо выполнить вот такой запрос: /bookstore/book[title=”Букварь”]/price, где:

  • /bookstore - корень нашего дерева и путь до нужного элемента, вложенность может быть любой
  • /book - элемент, который нас интересует
  • [title=”Букварь”] - значение тега title внутри одного из объектов book, которое равно слову Букварь, по сути - фильтр, по которому мы ищем нужный объект.
  • /price - конечный тег или элемент, значение которого нас и интересует.

Это только один из примеров, как работает XPath, если тебе хочется узнать больше свойств, которые мы можем использовать, забегай по ссылке, там все подробно расписано: https://www.w3schools.com/xml/xpath_syntax.asp

Ну а я прощаюсь до завтра, с тебя и твоих друзей - подписка и комментарий!