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

tob*_*ias 5 xml xpath

例如,对于下面的xml

<REPORT ID="TimekeeperListEdited" BoundId="Timekeeper" BoundType="ReportObject" />
Run Code Online (Sandbox Code Playgroud)

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

hel*_*cha 12

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

//*[lower-case(@BoundId) = 'timekeeper']
Run Code Online (Sandbox Code Playgroud)

如果您的使用仅限于XPath 1.0,您可以使用translate()函数转换案例,该函数替换字符串中的每个字符(第一个参数),该字符与第二个参数中的任何字符匹配,并且字符串在字符串中的相同位置发生作为第三个论点:

//*[translate(@BoundId, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'timekeeper']
Run Code Online (Sandbox Code Playgroud)

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

//*[translate(@BoundId, 'k', 'K') = 'TimeKeeper']
Run Code Online (Sandbox Code Playgroud)