Wicked Good X-Path,Internet Explorer(IE 9)&命名空间

时间:2013-04-29 21:06:40

标签: javascript dom xpath xmlhttprequest

我最近尝试包含wgxpath来修补IE 9缺少正确的X-Path支持,但我在尝试使用命名空间时遇到了一个奇怪的错误消息(«错误:错误令牌:::»)。

有人试图将它用于从XHR响应中获取的XML文档吗?我正在尝试以下方法:

function evaluate(node, expression, namespaces) {
    var resolver = null;

    if(namespaces) {
        resolver = function(prefix) { return namespaces[prefix]; };
    }
    else if(document.createNSResolver) {
        resolver = document.createNSResolver(node);
    }

    var results = document.evaluate(expression, node, resolver, XPathResult.ANY_TYPE, null);

    var value = null;
    switch(results.resultType) {
        case XPathResult.NUMBER_TYPE:
            value = results.numberValue;
            break;

        case XPathResult.STRING_TYPE:
            value = results.stringValue;
            break;

        case XPathResult.BOOLEAN_TYPE:
            value = results.booleanValue;
            break;

        case XPathResult.UNORDERED_NODE_ITERATOR_TYPE:
        case XPathResult.ORDERED_NODE_ITERATOR_TYPE:
            value = [];
            var result = null;
            while(result = results.iterateNext()) {
                value.push(result);
            }
            break;

        case XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE:
        case XPathResult.ORDERED_NODE_SNAPSHOT_TYPE:
            value = [];
            for(var index = 0; index < results.snapshotLength; ++index) {
                value.push(results.snapshotItem(index));
            }
            break;

        case XPathResult.ANY_UNORDERED_NODE_TYPE:
        case XPathResult.FIRST_ORDERED_NODE_TYPE:
            value = results.singleNodeValue;
            break;
    }

    return value;
};

使用IE,在评估从静态SVG文件获取的XML文档中的“/ svg:svg / svg:title / text()”时,它会失败。

我在这里做错了吗?

另外,我注意到它适用于Chrome但不适用于Firefox。我收到以下错误消息:«WrongDocumentError:节点不能用于创建它的文档以外的文档»。

由于wgxpath安装在一个窗口上,我不知道如何为传入的XHR XML文档设置它......

0 个答案:

没有答案