xml - XPath 查询 : why no results?

标签 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>

我有以下 XPath 查询:

//cat[@*[translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')] = 'marvin the cat']

但它没有返回任何结果。我正在尝试将 @* 的值转换为小写。

我正在寻找的是“匹配整个单词”但不区分大小写的结果。如何更改此查询以获得我想要的结果?

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

最佳答案

您提前结束了谓词。试试这个:

//cat[@*[translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'marvin the cat']]

关于xml - XPath 查询 : why no results?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10422189/

相关文章:

java - 没有 XML 的 Spring AOP

android - 评级栏的样式会破坏规模吗?

php - 如何处理含有非法字符的XML

iphone - GDataXml 和命名空间

sql - 选择 XML 节点作为行

php - 访问 xml 对象

c++ - 对于字符串,如何删除重复的字符?

java - 在java中将字符串转换为日期(复杂字符串)

java - 如何删除Java中二维数组中的空格?

xpath - XQuery/XPath "except"操作 - 选择不在其他序列中的序列部分