SelectNodes con XPath ignorando casos

c# case-insensitive html-agility-pack xpath

Pregunta

Tengo un problema para encontrar elementos en XPath que contiene una cadena determinada que ignora el encuadre de caracteres.

Quiero encontrar en una página HTML todos los nodos con id contienen el texto "pie de página" ignorando que se escribe en mayúsculas o minúsculas.

En mi ejemplo tengo un texto html diferente como este:

<div id="footer">some text</div>
<div id="anotherfooter">some text</div>
<div id="AnotherFooter">some text</div>
<div id="AnotherFooterAgain">some text</div>

Necesito seleccionar todos los nodos (o cualquier combinación en cualquier caso con la palabra "pie de página" en el ID) con un XPath.

Actualmente estoy usando este xpath pero no funciona para los ID de UpperCase

"//*[contains(./@id, 'footer')]/@id"

He hecho varias pruebas con translate () pero no funciona como esperaba.

¿Alguna idea?

EDITAR: Estoy usando HtmlAgilityPack con trabajos con la versión XPath 1.0.

Respuesta aceptada

No estoy seguro de haber intentado esto todavía, pero esto es lo que hago para las mayúsculas y minúsculas contiene búsquedas:

//*[contains(translate(./@id,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'), 'footer')]/@id

Vi que has encontrado tu solución, así que estoy publicando esta respuesta en caso de que otros tengan el mismo problema.



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow