在xhtml页面上运行时,xpath似乎不会返回任何结果.
var result = document.evaluate( "//a/img", document.body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null );
例如,返回一个空结果集.这是什么问题,我该如何解决?
xhtml元素不在null命名空间中,因此您必须将命名空间解析器传递给方法:
function resolver(prefix) { return prefix === 'x' ? 'http://www.w3.org/1999/xhtml' : null; } var result = document.evaluate( "//x:a/x:img", document.body, resolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null );