例如,对于下面的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/