【发布时间】:2009-12-16 05:50:21
【问题描述】:
我正在尝试下载一个 HTML 页面,并使用 XMLHttpRequest(在最新的 Safari 浏览器上)对其进行解析。不幸的是,我无法让它工作!
var url = "http://google.com";
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", url);
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4){
response = xmlhttp.responseText;
var doc = new DOMParser().parseFromString(response, "text/xml");
console.log(doc);
var nodes = document.evaluate("//a/text()",doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
console.log(nodes);
console.log(nodes.snapshotLength);
for(var i =0; i<nodes.snapshotLength; i++){
thisElement = nodes.snapshotItem(i);
console.log(thisElement.nodeName);
}
}
};
xmlhttp.send(null);
文本被成功下载(响应包含有效的 HTML),并被正确解析为树(doc 代表页面的有效 DOM)。然而,nodes.snapshotLength 是 0,尽管查询是有效的并且应该有结果。关于出了什么问题的任何想法?
【问题讨论】:
-
您可以通过“普通”DOM 访问吗?也可以直接使用
xmlhttp.responseXML。 -
你可以在这里找到答案stackoverflow.com/questions/40729785/…
标签: javascript xpath xmlhttprequest