"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como obter pesquisas sem distinção entre maiúsculas e minúsculas no XPath usando a função contains()?

Como obter pesquisas sem distinção entre maiúsculas e minúsculas no XPath usando a função contains()?

Publicado em 2024-11-07
Navegar:397

How to Achieve Case-Insensitive Searching in XPath Using the contains() Function?

Função contém() do XPath sem distinção entre maiúsculas e minúsculas

No XPath, a função contém() diferencia maiúsculas de minúsculas. No entanto, existem maneiras de contornar essa limitação.

Método 1: traduzir caracteres

Este método envolve a tradução de caracteres para letras minúsculas ou maiúsculas antes de verificar a substring:

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

Isso converte todas as letras maiúsculas do texto em minúsculas antes de verificar a substring "test".

Método 2: expressão XPath dinâmica

Usando uma linguagem de script como JavaScript, você pode construir uma expressão XPath dinâmica que lide com insensibilidade a maiúsculas e minúsculas:

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

Isso substitui os espaços reservados na expressão XPath com versões em maiúsculas, minúsculas e minúsculas da string de pesquisa.

Considerações Adicionais

  • Ambos os métodos suponha que o alfabeto seja conhecido.
  • Se o texto do elemento puder conter aspas simples, escape-as para evitar erros de sintaxe XPath.
  • Se estiver usando o Método 2, manipule aspas de escape na string de pesquisa.
Declaração de lançamento Este artigo foi reimpresso em: 1729589295 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3