次の XML があります。
<pets>
<dog name="Rupert" color="grey"/>
<dog name="Ralph" color="brown"/>
<cat name="Marvin the Cat" color="white"/>
<cat name="Garfield the Cat" color="orange"/>
<cat name="Cat" color="grey"/>
<cat name="Fluffy" color="black"/>
</pets>
次の XPath クエリがあります。
//cat[@*[translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')] = 'marvin the cat']
しかし、結果は返されません。@*
の値を小文字に変換しようとしています。
私が探しているのは、大文字と小文字を区別せずに「単語全体に一致する」結果です。このクエリを変更して、必要な結果を得るにはどうすればよいですか?
注: XPath 2.0 関数を使用したかったのmatches
ですが、XPath 1.0 に限定されていることがわかりました。したがって、回避策が必要です。