执行xpath查询时是否有办法忽略大小写。 见下面的例子。
//xdoc = xml document
//xdoc.outerHTML = "<Query><Filter>Test</Filter</Query>"
var strVal;
//this works - matching node is returned
var xpath = "Filter";
var result = xdoc.evaluate(xpath, xdoc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
//strVal is not null
strVal = result.singleNodeValue;
//this does not
var xpath = "filter";
var result = xdoc.evaluate(xpath, xdoc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
//strVal is null
strval = result.singleNodeValue;
答案 0 :(得分:1)
一种选择是使用XPath translate
将大写字母转换为小写。
在这种情况下,你的表达式如下:
var xpath = '//*[translate(name(), "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz") = "filter"]';
有一些更好的XPath 2.0方法,如matches
和类似的,但目前没有浏览器支持它:
http://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28XML%29#Query_technologies
这是翻译方法的小提琴: