xpath评估android中的错误

时间:2010-04-22 04:58:29

标签: xml android xpath

我在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 if语句并且一切正常..

但在Android浏览器中它给出了错误... XPathResult未定义... 这个时间控制来到else语句,甚至在这里它显示selectNodes是unfind和。所以结果是null,而在Firefox中它给出了节点列表..

真的需要它完成......需要帮助..

谢谢......

1 个答案:

答案 0 :(得分:2)

Android浏览器不支持XPath。 This Android issue声明它缺少XmlDocuments,尽管document.evaluate对我来说也失败了(仅用于测试,我对XmlDocuments感兴趣)

但丹在7月19日发表的评论称其正在研发3.0版本 Where is XPathEvaluator in android web browser?

不幸的是3.x仅适用于平板电脑,所以我们必须等待很长时间才能发布IceCream并可用于手机。

这是浏览器所处的另一种情况,如this message中所述(没有回复)浏览器声称实现XPath 3.0,但事实是它不可用,所以返回true是一个谎言。