Аспекты написания XPath-запросов | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 мая, печатный экземпляр отправим 8 мая.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №5 (243) февраль 2019 г.

Дата публикации: 30.01.2019

Статья просмотрена: 459 раз

Библиографическое описание:

Чернышов, А. С. Аспекты написания XPath-запросов / А. С. Чернышов. — Текст : непосредственный // Молодой ученый. — 2019. — № 5 (243). — С. 16-19. — URL: https://moluch.ru/archive/243/56118/ (дата обращения: 25.04.2024).



В данной статье рассматриваются некоторые особенности написания XPath-запросов.

Ключевые слова: XPath, XML.

XPath (XML Path Language) — язык запросов к элементам XML-документа. Его применение довольно широко: от парсинга документов XML формата (в том числе web страниц html) до автоматизации тестирование сайтов и мобильных приложений.

Строка XPath описывает способ выбора нужных элементов из массива элементов, которые могут содержать вложенные элементы [1].

XPath имеет два принципиально разных способа адресации: относительный и абсолютный (рисунок 1).

Рис. 1. Способы адресации

Запросы с относительным путем разрабатываются быстрее, и как правило, выходят более компакты чем запросы с абсолютным путем, особенно это заметно при работе со сложными и большими XML-документами, где абсолютные пути могут достигать несколько сотен символов.

Рассматривая эти две стратегии написания запросов, важно понимать, каким образом, при каждом из подходов ищутся искомые элементы.

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

Рассмотрим это на конкретном примере (рисунок 2).

Рис. 2. Структура html документа

Предположим, у нас есть совокупность html документов с одной и той же структурой, и нам необходимо из каждого документа спарсить элемент «title» (заголовок документа). Рассмотрим два возможных запроса: //title и /html/head/title. В первом случае, элемент «title» будет искаться на всех уровнях вложенности, когда как при втором запросе, уже на втором шаге элемент «body» отбросится и в дальнейшем анализе учувствовать не будет. Очевидно, что в данной ситуации второй запрос будет более корректный, даже, если мы точно знаем, что элемент «title» в документе у нас всего один и результат запросов будет одинаковый.

Отметим, что запросы могут быть и следующего вида: /html/body//p. В этом случае, элемент «p» будет искаться на всех уровнях вложенности элемента «body», а «head» при этом рассматриваться не будет. Важно понимать, когда целесообразно использовать один подход, а когда другой.

При использовании «/» (так называемая ось child::), можно достичь максимальной производительности и экономии ресурсов, кроме того иногда точный путь даже с точки зрения логики выглядит более верным (как в примере выше, так как «title» является постоянным вложенным элементом «head»). Если необходимо единожды спарсить информацию из неизменяемых документов, почти всегда написание запросов с осями child:: («/») имеет смысл, за исключением тех случаев, когда подобные запросы оказываются очень сложные и длинные (рисунок 3), в этом случае необходимо делать выбор, что важнее: удобство разработки или производительность, скорость разработки или скорость работы программы.

Рис. 3. Запрос XPath

Однако не всегда, имеет смысл писать запросы с большим количеством осей child:: («/»), даже, если при этом будет достигаться максимальная производительность, а сам запрос будет выглядеть вполне читаемо.

Часто с помощью XPath приходится обрабатывать динамические документы, которые с течением времени могут измениться, вследствие чего абсолютный путь искомых элементов поменяется, и каждая ось child:: может являться потенциальным узким местом в запросе.

Поэтому при работе с web страницами (web scraping, QA automation website), очень часто рационально использовать «//» (ось descendant-or-self::), в этом случае запрос будет более устойчив и при незначительном изменении структуры страницы, результат выполнения запроса не изменится.

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

Литература:

1. Википедия: XPath [Электронный ресурс] — URL: https://ru.wikipedia.org/wiki/XPath (дата обращения: 26.01.2019).

Основные термины (генерируются автоматически): XML, запрос, элемент, документ, максимальная производительность, ось, путь, способ адресации, уровень вложенности.


Ключевые слова

XML, XPath

Похожие статьи

Метод автоматизированного анализа электронных документов...

Электронные документы в формате XML представляют собой древовидную иерархическую структуру

– раздел электронного документа, расположенный по пути

Описанный метод автоматизированного анализа информационных документов в формате XML позволяет с...

Оптимизация взаимодействия web-приложения с базой данных...

В статье предложены методы увеличения производительности системы путем изменения методов обработки XML.

Однако, как показал анализ производительности ИИС, метод формирования XML-документов, предложенный и реализованный разработчиками ИИС...

Сетевые атаки. Виды. Способы борьбы | Статья в сборнике...

XML (eXtensible Markup Language) – это всем известный язык разметки, с помощью которого

Некоторые атаки сводят к нулю производительность сети, переполняя ее нежелательными и

Способы защиты от данной атаки: Использовать только проверенные ресурсы и пути...

Интеграция информационных систем на основе стандартов XML...

Передаваемый XML-документ содержится в блоке document, а signature содержит электронную подпись XML-документа [5].

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

Метод преобразования текстового документа OpenDocument...

 разработать метод специальной обработки (разметки) документов в привычном оператору — не профессионалу в области IT, — редакторе.

Получить же из документа в формате XML офисного пакета документ в формате XML БД ИС возможно автоматическим способом...

Особенности реализации MVC-архитектуры в веб-приложениях

Верхние уровни могут использовать программные компоненты, расположенные ниже, нижние не могут обращаться к верхним, они вообще не должны ничего о них знать. Таким образом, базовым элементом такой архитектуры является модель или точнее модели, что отображено на...

MapReduce и метод доступа к хранилищу MRIJ on RCFile

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

О способе интеграции системы обнаружения аномалий в SQL...

Библиографическое описание: Григоров А. С. О способе интеграции системы обнаружения аномалий в SQL запросах к базе данных на основе

Информационные системы активно входят в нашу повседневную жизнь: большое количество информации и документов переносится в...

Обзор некоторых алгоритмов нестрогого сопоставления записей...

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

Похожие статьи

Метод автоматизированного анализа электронных документов...

Электронные документы в формате XML представляют собой древовидную иерархическую структуру

– раздел электронного документа, расположенный по пути

Описанный метод автоматизированного анализа информационных документов в формате XML позволяет с...

Оптимизация взаимодействия web-приложения с базой данных...

В статье предложены методы увеличения производительности системы путем изменения методов обработки XML.

Однако, как показал анализ производительности ИИС, метод формирования XML-документов, предложенный и реализованный разработчиками ИИС...

Сетевые атаки. Виды. Способы борьбы | Статья в сборнике...

XML (eXtensible Markup Language) – это всем известный язык разметки, с помощью которого

Некоторые атаки сводят к нулю производительность сети, переполняя ее нежелательными и

Способы защиты от данной атаки: Использовать только проверенные ресурсы и пути...

Интеграция информационных систем на основе стандартов XML...

Передаваемый XML-документ содержится в блоке document, а signature содержит электронную подпись XML-документа [5].

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

Метод преобразования текстового документа OpenDocument...

 разработать метод специальной обработки (разметки) документов в привычном оператору — не профессионалу в области IT, — редакторе.

Получить же из документа в формате XML офисного пакета документ в формате XML БД ИС возможно автоматическим способом...

Особенности реализации MVC-архитектуры в веб-приложениях

Верхние уровни могут использовать программные компоненты, расположенные ниже, нижние не могут обращаться к верхним, они вообще не должны ничего о них знать. Таким образом, базовым элементом такой архитектуры является модель или точнее модели, что отображено на...

MapReduce и метод доступа к хранилищу MRIJ on RCFile

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

О способе интеграции системы обнаружения аномалий в SQL...

Библиографическое описание: Григоров А. С. О способе интеграции системы обнаружения аномалий в SQL запросах к базе данных на основе

Информационные системы активно входят в нашу повседневную жизнь: большое количество информации и документов переносится в...

Обзор некоторых алгоритмов нестрогого сопоставления записей...

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

Задать вопрос