2012-03-21 46 views
9

我在XPath中找到包含某个字符串的元素时遇到问题,而忽略了字符外框。SelectNodes with 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的“页脚”二字任何情况下,任何的组合)。

目前我使用此XPath但大写的ID的

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

我已经做了多次测试与翻译不工作(),但如我所料不工作。

有什么想法?

编辑:我正在使用HtmlAgilityPack与XPath 1.0版本的作品。

回答

11

不知道如果你还没试过这个,但是这是我为区分大小写做什么包含搜索:

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

我看见你找到了你的解决方案,所以我张贴的情况下,这个答案其他人也有同样的问题。

+0

这正是我找到的解决方案,但我无法发布是因为我无法在8小时内回复自己:S感谢帖子! – vfportero 2012-03-21 13:12:50