2014-06-12 97 views
2

例如,对于下面xpath小写 - 有没有xpath函数来做到这一点?

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

的XML如何在第一个记录使用XPath匹配诸如//*[@BoundId='TimeKeeper']。有xpath函数来做到这一点?

+2

可能重复【如何写一个XPath找到一个元素,其属性包含一个文本?](http://stackoverflow.com/questions/9604057/how-to-write-an-xpath-to -find-AN-元件,其属性-包含-A-文本) – Joe

回答

5

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

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

如果您的使用只限于的XPath 1.0,你可以转换的情况下与translate()函数替换每个字符串(第一个参数)与第二个参数中的任何字符相匹配,其中处于相同位置中的字符作为第三个参数传递给字符串:

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

,或者,如果你正在处理一个特殊情况,你正在测试是固定(而不是从你的程序中其它部分来一个变量),你可以简单地转换角色,你感兴趣的字符串:

//*[translate(@BoundId, 'k', 'K') = 'TimeKeeper'] 
相关问题