XPathでケースを無視したSelectNodes

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()でいくつかのテストを行ってきましたが、期待通りに動作しません。

何か案が?

編集:私は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は合法ですか? はい、理由を学ぶ