문자 대소 문자를 무시한 특정 문자열이 포함 된 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
나는 당신이 당신의 해결책을 찾은 것을 보았습니다, 그래서 나는 다른 사람들이 같은 문제를 안고있을 때를 대비하여이 답변을 게시하고 있습니다.