XPath查询:为什么没有结果?

dev*_*per 1 xml string xpath

我有以下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>
Run Code Online (Sandbox Code Playgroud)

我有以下XPath查询:

//cat[@*[translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')] = 'marvin the cat']
Run Code Online (Sandbox Code Playgroud)

但它没有返回任何结果.我试图将价值@*转化为小写.

我正在寻找的是一个"匹配整个单词"而不区分大小写的结果.如何更改此查询以实现我想要的结果?

注意:我本来想使用XPath 2.0 matches函数,但我发现我只限于XPath 1.0.因此我需要一个解决方法!

Dan*_*ley 6

你过早地结束了谓词.试试这个:

//cat[@*[translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'marvin the cat']]
Run Code Online (Sandbox Code Playgroud)