Освоение XPath: различные методы поиска элементов по содержащемуся тексту

XPath — это мощный язык, используемый для навигации и запроса документов XML и HTML. Когда дело доходит до парсинга веб-страниц или автоматизации задач, связанных с взаимодействием с веб-страницами, поиск элементов на основе содержащегося в них текста является общим требованием. В этой статье мы рассмотрим несколько методов выполнения этой задачи с использованием XPath. Так что пристегнитесь и начнем!

Метод 1: использование функции contains()
XPath предоставляет функцию contains(), которая позволяет нам находить элементы, содержащие определенную текстовую строку. Вот пример:

xpath_query = "//element[contains(text(), 'desired_text')]"

Замените 'element'на HTML-тег искомого элемента, а 'desired_text'на текст, который вы хотите найти. Этот метод возвращает все элементы, содержащие указанный текст.

Метод 2: использование функции text()
XPath предоставляет функцию text(), которая позволяет нам напрямую искать элементы на основе их текстового содержимого. Вот пример:

xpath_query = "//element[text()='desired_text']"

И снова замените 'element'тегом HTML и 'desired_text'текстом, который вы хотите найти. Этот метод соответствует только тем элементам, текстовое содержимое которых точно соответствует указанному тексту.

Метод 3: использование функции normalize-space()
Иногда текстовое содержимое элемента может содержать начальные или конечные пробелы. В таких случаях пригодится функция normalize-space(). Он обрезает начальные и конечные пробелы и сжимает несколько пробелов в одно. Вот пример:

xpath_query = "//element[normalize-space()='desired_text']"

Замените 'element'тегом HTML и 'desired_text'текстом, который вы хотите найти. Этот метод гарантирует, что текст нормализуется перед сравнением.

Метод 4: использование функций starts-with()или ends-with().
Если вам известна только начальная или конечная часть нужного текста, вы можете использовать starts-with()или ends-with()функций соответственно. Вот примеры:

Поиск элементов с текстом, начинающимся с определенной строки:

xpath_query = "//element[starts-with(text(), 'desired_text')]"

Поиск элементов с текстом, заканчивающимся определенной строкой:

xpath_query = "//element[ends-with(text(), 'desired_text')]"

Замените 'element'тегом HTML, а 'desired_text'— начальной или конечной частью текста, который вы хотите найти.

XPath предоставляет несколько методов для поиска элементов по содержащемуся в них тексту. Используя такие функции, как contains(), text(), normalize-space(), starts-with()и ends-with(), мы можем эффективно извлекать элементы, соответствующие желаемому тексту. Поэкспериментируйте с этими методами, чтобы они соответствовали вашим конкретным потребностям при очистке или автоматизации веб-задач. Счастливого XPathing!