【发布时间】:2010-12-30 05:56:46
【问题描述】:
我正在使用 Firefox 的 XPath-checker,但语法不正确。我有一个链接:
<a>LinkName</a>
我尝试这样做:
//a[lower-case(child::text())='linkname']
但我有语法错误。我做错了什么?
谢谢
【问题讨论】:
我正在使用 Firefox 的 XPath-checker,但语法不正确。我有一个链接:
<a>LinkName</a>
我尝试这样做:
//a[lower-case(child::text())='linkname']
但我有语法错误。我做错了什么?
谢谢
【问题讨论】:
XPath 1.0 中没有名为 lower-case 的函数,它是 Firefox 中使用的 XPath 版本。
你需要改用丑陋的translate函数:-
translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')
...当然,如果您需要覆盖更广泛的字符集,则需要扩展它。
【讨论】:
nodeRev = (NodeList) xPath.compile("//StandardDetail/IsReverseEvent[translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='true']").evaluate(doc, XPathConstants.NODESET);
你可以使用翻译
//a[translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'linkname']
【讨论】: