Функция содержит() XPath без учета регистра
В XPath функция contains() чувствительна к регистру. Однако есть способы обойти это ограничение.
Метод 1: перевод символов
Этот метод включает перевод символов в нижний или верхний регистр перед проверкой подстроки:
/html/body//text()[ contains( translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'test' ) ]
При этом все прописные буквы в тексте преобразуются в строчные перед проверкой подстроки «test».
Метод 2: динамическое выражение XPath
Используя язык сценариев, такой как JavaScript, вы можете создать динамическое выражение XPath, которое обрабатывает нечувствительность к регистру:
function xpathPrepare(xpath, searchString) {
return xpath.replace("$u", searchString.toUpperCase())
.replace("$l", searchString.toLowerCase())
.replace("$s", searchString.toLowerCase());
}
xp = xpathPrepare("//text()[contains(translate(., '$u', '$l'), '$s')]", "Test");
Это заменяет заполнители в выражении XPath с версиями строки поиска в верхнем, нижнем и нижнем регистре.
Дополнительные соображения
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3