xml - xpath lowercase - 是否有 xpath 函数可以执行此操作?

标签 xml xpath

例如,对于下面的xml

<REPORT ID="TimekeeperListEdited" BoundId="Timekeeper" BoundType="ReportObject" />

如何将第一条记录与 xpath 匹配,如 //*[@BoundId='TimeKeeper']。有没有 xpath 函数可以做到这一点?

最佳答案

如果您使用的是 XPath 2.0,则可以使用 lower-case() 函数:

//*[lower-case(@BoundId) = 'timekeeper']

如果您的使用仅限于 XPath 1.0,您可以使用 translate() 函数转换大小写,该函数替换字符串(第一个参数)中匹配的每个字符第二个参数中的任意字符,与作为第三个参数传递的字符串中相同位置出现的字符:

//*[translate(@BoundId, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'timekeeper']

或者,如果您正在处理特定情况并且您正在测试的字符串是固定的(而不是来自程序其他部分的变量),您可以简单地翻译字符你感兴趣:

//*[translate(@BoundId, 'k', 'K') = 'TimeKeeper']

关于xml - xpath lowercase - 是否有 xpath 函数可以执行此操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24183701/

相关文章:

c - 使用 xml 配置文件 - 简单的映射方法?

xml - 使用 local.xml 更改或重新排列 Magento 登录和注销(顶部链接)位置

php xpath 以数组形式返回节点值

xpath - 是否可以在 xpath 查询中使用 OR?想要在一个查询中匹配 2 个不同的属性

xpath - EclipseLink Moxy unmarshall 和 getValueByXPath 给出 null

php - Gearman 的工作和任务有什么区别?

xml - xpath中是否有一个起始于/contains函数来搜索节点名称

java - 在 xml 序列化期间将每个属性放在一个新行上

Python Selenium元素点击拦截

sql - 读取表中的 XML