2012-03-21 13 views
9

Tengo un problema para encontrar elementos en XPath que contienen una cierta cadena que ignora la carcasa del personaje.Seleccionar nodos con casos ignorantes de XPath

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

En mi ejemplo, tengo un texto html diferente como esto:

<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" en el id) con un XPath.

Actualmente estoy usando este XPath, pero no funciona para varias pruebas

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

que he hecho de la identificación con funciones UpperCase translate(), pero no funciona como esperaba.

¿Alguna idea?

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

Respuesta

11

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

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

he visto que haya encontrado su solución, así que les dejo esta respuesta en caso otros tienen el mismo problema.

+0

Esta es exactamente la solución que encontré, pero no puedo publicarla porque no puedo responderme a mí mismo en 8 horas como mínimo: S ¡Gracias por la publicación! – vfportero

Cuestiones relacionadas