背景:我使用HtmlAgilityPack(.Net),所以我不得不使用XPath 1.0,which doesn't have a lower-case implementation。XPath表達式中的「代碼重用」
我正在嘗試查找所有包含foo
作爲整個單詞的屬性的節點。
例子:
- 「富」 比賽
- 「我富」 比賽
- 「富巴」 比賽
- 「富」 比賽
- 「的IFoo 「不匹配
- 「食物」 不匹配
這是我有什麼(也有XPath 1.0中沒有ends-with
...):
//*[@*[starts-with(.,'foo ') or contains(.,' foo ') or .='foo' or substring(.,string-length(.) - 3)=' foo']]
據this,我可以用這個可怕方法小寫搜索條件:
translate(.,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')
最後,我的問題:如何使用translate
函數,同時保持表達儘可能簡短和可讀?
(獎金:我如何不同表情之間共享這個)
你是什麼意思?「我如何在不同的表情之間分享這個」?其餘的Tomalak回答非常好 - 使用定點方法是一種衆所周知的編程技術。 – 2012-07-29 14:34:49