XPath 무시 상자가있는 노드 선택

c# case-insensitive html-agility-pack xpath

문제

문자 대소 문자를 무시한 특정 문자열이 포함 된 XPath의 요소를 찾는 데 문제가 있습니다.

나는 HTML 페이지에서 id가있는 모든 노드가 대문자 또는 소문자로 쓰여진 것을 무시하는 텍스트 "footer"를 포함하고 있음을 찾고 싶다.

내 예제에서는 다음과 같은 다른 HTML 텍스트가 있습니다.

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

XPath를 사용하여 모든 노드 (또는 어쨌든 id의 "footer"라는 단어가있는 모든 조합)를 선택해야합니다.

현재이 xpath를 사용하고 있지만 UpperCase ID에는 작동하지 않습니다.

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

translate ()를 사용하여 여러 테스트를 수행했지만 예상대로 작동하지 않습니다.

어떤 생각?

편집 : 나는 XPath 1.0 버전과 함께 작동 HtmlAgilityPack 사용하고 있습니다.

수락 된 답변

아직 시도한 적이 있는지 확실하지 않지만 대소 문자를 구분하여 검색 할 때 사용합니다.

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

나는 당신이 당신의 해결책을 찾은 것을 보았습니다, 그래서 나는 다른 사람들이 같은 문제를 안고있을 때를 대비하여이 답변을 게시하고 있습니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.