XPath que no distingue entre mayúsculas y minúsculas contiene
En XPath, la función contiene() comprueba si una cadena contiene otra, como esta:
/html/body//text()[contains(.,'test')]
Esto distingue entre mayúsculas y minúsculas, lo que significa que no coincidirá con "Test", "TEST" o " Prueba." Para habilitar la distinción entre mayúsculas y minúsculas, pruebe esta solución alternativa:
/html/body//text()[ contains( translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'test' ) ]
Esto reemplaza cada letra mayúscula con su contraparte minúscula antes de verificar si hay coincidencias. Sin embargo, está limitado a conjuntos de caracteres conocidos.
Un método alternativo aprovecha 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");
Esto permite coincidencia que no distingue entre mayúsculas y minúsculas de cualquier cadena de búsqueda sin conocimiento previo del alfabeto. Sin embargo, ambas opciones tienen problemas con las comillas simples en las cadenas de búsqueda.
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