«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу эффективно находить элементы HTML по классу CSS с помощью XPath?

Как я могу эффективно находить элементы HTML по классу CSS с помощью XPath?

Опубликовано 21 декабря 2024 г.
Просматривать:330

How Can I Efficiently Locate HTML Elements by CSS Class Using XPath?

Поиск элементов по классу CSS с использованием XPath

При парсинге веб-страниц часто необходимо найти элементы HTML на основе их класса CSS. XPath, мощный инструмент для навигации по документам XML и HTML, предоставляет способ добиться этого.

Рассмотрим HTML-страницу с элементом div, имеющим класс с именем «Test». Для поиска этого элемента можно использовать следующий запрос XPath:

//*[contains(@class, 'Test')]

Этот запрос выбирает все элементы, содержащие класс «Test» , независимо от того, где они появляются в дереве документа.

Чтобы оптимизировать производительность, вы можете сузить поиск до определенных типов элементов, например элементов div. Например, следующий запрос ограничит поиск элементами div, содержащими класс «Test»:

//div[contains(@class, 'Test')]

Однако, если у вас есть элементы с такими классами, как «Testvalue» или «newTest», приведенный выше запрос также будет соответствовать им. Чтобы обеспечить более точное совпадение, вы можете использовать объединенную строку, содержащую пробел до и после класса «Test», как предложено @Tomalak:

//div[contains(concat(' ', @class, ' '), ' Test ')]

Этот запрос будет соответствовать только элементам div, в которых слово «Test» является отдельным значением класса.

Чтобы исключить любые проблемы с пробелами, вы также можете нормализовать пробелы с помощью функции нормализации-пространства, как предложено @Terry:

//div[contains(concat(' ', normalize-space(@class), ' '), ' Test ')]

Наконец, важно заменить звездочку (*) в этих запросах фактическим именем элемента, который вы хотите сопоставить, если только вы не хотите выполнять поиск по всем элементам в документе. Это повысит эффективность запроса.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3