例如,对于下面的xml
<REPORT ID="TimekeeperListEdited" BoundId="Timekeeper" BoundType="ReportObject" />
如何将第一条记录与x //*[@BoundId='TimeKeeper']
匹配。是否有xpath函数来执行此操作?
答案 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']