SelectNodes avec XPath en ignorant les cas

c# case-insensitive html-agility-pack xpath

Question

J'ai un problème pour trouver des éléments dans XPath contenant une certaine chaîne ignorant la casse des caractères.

Je veux trouver dans une page HTML tous les noeuds dont l'identifiant contient le texte "pied de page" ignorant qu'il est écrit en majuscule ou en minuscule

Dans mon exemple, j'ai un texte HTML différent comme celui-ci:

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

Je dois sélectionner tous les nœuds (ou toute combinaison dans tous les cas avec le mot "pied de page" dans l'identifiant) avec un XPath.

Actuellement, j'utilise ce xpath mais ne fonctionne pas pour les identifiants 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>

J'ai fait plusieurs tests avec translate () mais ne fonctionne pas comme prévu.

Une idée?

EDIT: J'utilise HtmlAgilityPack avec fonctionne avec la version XPath 1.0.

Réponse acceptée

Je ne sais pas si vous avez déjà essayé, mais voici ce que je fais pour les recherches sensibles à la casse:

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

J'ai vu que vous aviez trouvé votre solution, alors je poste cette réponse au cas où d'autres personnes auraient le même problème.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi