我最近尝试包含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文档设置它......