xpath小写 - 是否有xpath函数来执行此操作?

时间:2014-06-12 11:53:04

标签: xml xpath

例如,对于下面的xml

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

如何将第一条记录与x //*[@BoundId='TimeKeeper']匹配。是否有xpath函数来执行此操作?

1 个答案:

答案 0 :(得分:11)

如果您使用 XPath 2.0 ,则可以使用lower-case()功能:

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

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

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

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

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