我在查找XPath中包含忽略字符大小写的字符串的元素时遇到问题。
我想在HTML页面中找到所有id为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()完成了几项测试,但是没有像我预期的那样工作。
有什么想法吗?
编辑:我正在使用HtmlAgilityPack,并使用XPath 1.0版本。
答案 0 :(得分:11)
不确定你是否已经尝试过这个,但这就是我对区分大小写的搜索包含的内容:
//*[contains(translate(./@id,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'), 'footer')]/@id
我看到你找到了解决方案,所以我发布这个答案以防其他人遇到同样的问题。