我在 android 浏览器中运行一个包含以下代码的应用程序..
if (typeof XPathResult != "undefined") {
//use build in xpath support for Safari 3.0
var xmlDocument = doc;
if (doc.nodeType != 9) {
xmlDocument = doc.ownerDocument;
}
results = xmlDocument.evaluate( xpathExpr,
doc,
function(prefix) {
return namespaces[prefix] || null;
},
XPathResult.ANY_TYPE,
null );
var thisResult;
result = [];
var len = 0;
do {
thisResult = results.iterateNext();
if (thisResult) {
result[len] = thisResult;
len++;
}
} while ( thisResult );
}
else {
try {
if (doc.selectNodes) {
result = doc.selectNodes(xpathExpr);
}
} catch (ex) {}
}
return result;
但是当我在 Firefox 控件中运行这个应用程序时,输入 if 语句并且一切正常..
但在安卓浏览器中它给出了错误... XPathResult 未定义... 这次控制来到 else 语句,即使在这里它也显示 selectNodes 是未定义的。所以结果为空,而在 Firefox 中它给出了节点列表..
真的需要完成……需要帮助……
谢谢...
最佳答案
Android 浏览器不支持 XPath。 This Android issue声明它缺少 XmlDocuments,尽管 document.evaluate 对我来说也失败了(只是为了测试,我对 XmlDocuments 感兴趣)
但是 Dan 在 7 月 19 日发表的评论说它正在开发 3.0 Where is XPathEvaluator in android web browser?
不幸的是,3.x 仅适用于平板电脑,因此我们将不得不等待很长时间,直到 IceCream 发布并可用于手机。
这是浏览器所在的另一种情况,如this message所述(没有回复)浏览器声称实现了 XPath 3.0 但事实是它不可用,所以返回 true 是一个谎言。
关于xml - android中的xpath评估错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2688332/