Ich habe ein Problem, Elemente in XPath zu finden, die eine bestimmte Zeichenkette enthalten, die das Zeichengehäuse ignoriert.
Ich möchte in einer HTML-Seite finden alle Knoten mit ID enthält den Text "Fußzeile" ignorieren es ist in Groß- oder Kleinbuchstaben schreiben.
In meinem Beispiel habe ich einen anderen HTML-Text wie folgt:
<div id="footer">some text</div>
<div id="anotherfooter">some text</div>
<div id="AnotherFooter">some text</div>
<div id="AnotherFooterAgain">some text</div>
Ich muss alle Knoten (oder irgendeine Kombination mit dem Wort "Fußzeile" in der ID) mit einem XPath auswählen.
Momentan benutze ich diesen XPath aber nicht für die UpperCase IDs
"//*[contains(./@id, 'footer')]/@id"
Ich habe mehrere Tests mit translate () gemacht, funktioniert aber nicht wie erwartet.
Irgendeine Idee?
EDIT: Ich verwende HtmlAgilityPack mit Arbeiten mit der XPath 1.0-Version.
Ich bin mir nicht sicher, ob Sie dies bereits versucht haben, aber das ist es, was ich bei Groß- und Kleinschreibung beachten muss:
//*[contains(translate(./@id,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'), 'footer')]/@id
Ich habe gesehen, dass Sie Ihre Lösung gefunden haben. Ich poste diese Antwort für den Fall, dass andere dasselbe Problem haben.