"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo lograr una búsqueda que no distinga entre mayúsculas y minúsculas en XPath utilizando la función contiene()?

¿Cómo lograr una búsqueda que no distinga entre mayúsculas y minúsculas en XPath utilizando la función contiene()?

Publicado el 2024-11-07
Navegar:457

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

Función XPath que no distingue entre mayúsculas y minúsculas()

En XPath, la función contiene() distingue entre mayúsculas y minúsculas. Sin embargo, hay formas de solucionar esta limitación.

Método 1: Traducir caracteres

Este método implica traducir caracteres a minúsculas o mayúsculas antes de verificar la subcadena:

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

Esto convierte todas las letras mayúsculas del texto a minúsculas antes de verificar la subcadena "prueba".

Método 2: Expresión XPath dinámica

Utilizando un lenguaje de secuencias de comandos como JavaScript, puede construir una expresión XPath dinámica que maneje la distinción entre mayúsculas y 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");

Esto reemplaza los marcadores de posición en la expresión XPath con versiones en mayúsculas, minúsculas y minúsculas de la cadena de búsqueda.

Consideraciones adicionales

  • Ambos métodos suponen que se conoce el alfabeto.
  • Si el texto del elemento puede contener comillas simples, escápelas para evitar errores de sintaxis XPath.
  • Si utiliza el Método 2, maneje las comillas escapadas en la cadena de búsqueda.
Declaración de liberación Este artículo se reimprime en: 1729589295 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3