SelectNodes con XPath che ignora i casi

c# case-insensitive html-agility-pack xpath

Domanda

Ho un problema nel trovare elementi in XPath che contiene una determinata stringa che ignora l'intestazione dei caratteri.

Voglio trovare in una pagina HTML tutti i nodi con id contiene il testo "footer" ignorando la sua scrittura in maiuscolo o minuscolo.

Nel mio esempio ho un testo html diverso come questo:

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

Ho bisogno di selezionare tutti i nodi (o qualsiasi combinazione in ogni caso con la parola "footer" nell'ID) con un XPath.

Attualmente sto usando questo xpath ma non funziona per l'id di UpperCase

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

Ho fatto diversi test con translate () ma non funziona come mi aspettavo.

Qualche idea?

EDIT: sto usando HtmlAgilityPack con opere con la versione 1.0 XPath.

Risposta accettata

Non sono sicuro se hai già provato questo, ma questo è quello che faccio per le maiuscole e minuscole contiene le ricerche:

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

Ho visto che hai trovato la soluzione, quindi sto postando questa risposta nel caso in cui altri abbiano lo stesso problema.




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché