背景:我正在使用 HtmlAgilityPack (.Net),所以我不得不使用 XPath 1.0,它没有小写实现。
我正在尝试查找具有包含foo
整个单词的属性的所有节点。
例子:
- “富”匹配
- “我的 foo”比赛
- “富吧”匹配
- “福”匹配
- "ifoo"不匹配
- “食物”不匹配
这就是我所拥有的(ends-with
XPath 1.0 中也没有......):
//*[@*[starts-with(.,'foo ') or contains(.,' foo ') or .='foo' or substring(.,string-length(.) - 3)=' foo']]
据此,我可以使用这种可怕的方法来小写搜索条件:
translate(.,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')
最后,我的问题是:我如何使用该translate
函数,同时保持表达式尽可能简短和可读?
(奖励:我如何在不同的表达之间分享这个?)