背景:HtmlAgilityPack(.Net)を使用しているため、小文字の実装がないXPath1.0を使用する必要があります。
foo
単語全体を含む属性を持つすべてのノードを見つけようとしています。
例:
- 「foo」マッチ
- 「私のfoo」の一致
- 「foobar」の一致
- 「フー」マッチ
- 「ifoo」は一致しません
- 「食べ物」は一致しません
ends-with
これは私が持っているものです( XPath 1.0に もありません...):
//*[@*[starts-with(.,'foo ') or contains(.,' foo ') or .='foo' or substring(.,string-length(.) - 3)=' foo']]
これによると、この恐ろしい方法を使用して、検索条件を小文字にすることができます。
translate(.,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')
最後に、私の質問:式をできるだけ短く、読みやすくしながら、関数を使用するにはどうすればよいですか?translate
(ボーナス:異なる表現間でこれを共有するにはどうすればよいですか?)