使用XPath忽略大小寫的SelectNodes

c# case-insensitive html-agility-pack xpath

我在查找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

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

我用translate()完成了幾個測試但是沒有按照我的預期工作。

任何想法?

編輯:我正在使用HtmlAgilityPack與XPath 1.0版本的工作。

一般承認的答案

不確定你是否已經嘗試過這個,但這是我為區分大小寫的搜索包含的內容:

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

我看到你找到了解決方案,所以我發布這個答案以防其他人有同樣的問題。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因