ちょっと必要な部分だけ引用
引用元は、
E[foo~="bar"]
E[contains(concat(" ",@foo," "), " bar " )]
「空白区切りのリストの中で、対応する値がある」という条件に対して、属性値と検索したい文字列の両方の前後に空白文字を加えた上で、contains()で検索している。
E[foo]
E[@foo]
E[foo="bar"]
E[@foo="bar"]
E[foo^="bar"]
E[starts-with(@foo, "bar" )]
E[foo$="bar"]
E[substring(@foo, string-length(@foo) - string-length("bar") + 1) = "bar"]
XPath 1.0にはend-with()が無いので、文字列操作を使う必要がある。XPath 1.0では文字の位置は0からではなく1から始まることに注意が必要。なお、検索対象の文字列が固定なら、- string-length("bar") + 1の部分は- 2のように直接数値を書いてもよい。
E[foo*="bar"]
E[contains(@foo, "bar" )]
