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

Как выполнить поиск XPath без учета регистра с помощью функции containsIn?

Опубликовано 12 ноября 2024 г.
Просматривать:606

How to Perform Case-Insensitive XPath Searching with ContainsIn Function?

XPath contains без учета регистра

В XPath функция contains() проверяет, содержит ли одна строка другую, например:

/html/body//text()[contains(.,'test')]

Это значение чувствительно к регистру, то есть не будет соответствовать «Test», «TEST» или «TesT». Чтобы включить нечувствительность к регистру, попробуйте этот обходной путь:

/html/body//text()[
    contains(
        translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),
        'test'
    )
]

При этом каждая заглавная буква заменяется строчной буквой перед проверкой совпадений. Однако он ограничен известными наборами символов.

Альтернативный метод использует JavaScript:

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");

Это позволяет регистронезависимое сопоставление любой строки поиска без предварительного знания алфавита. Однако оба варианта не справляются с одинарными кавычками в строках поиска.

Заявление о выпуске Эта статья перепечатана по адресу: 1729588881. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3