我想使用xpath从网站获取所有div元素。我正在使用Opera 11.50。跨站点xhr工作,因为这是一个扩展(和responseText获取正确的内容,我可以说getElementsByTagName('div'),但我需要使用xpath)。请帮忙。
var xhr = new window.XMLHttpRequest();
xhr.open('GET','http://www.msn.com',true);
xhr.onreadystatechange = function(){
if(this.readyState == 4 && this.status == 200){
//first try
var root = this.responseXML;
var nodes = root.selectNodes('//div'); //nodes.length = 0 !!
//second
var doc = xhr.responseXML;
var divs = doc.evaluate( '//div', doc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
// divs.snapshotLength = 0 ...
}
}
答案 0 :(得分:0)
那么这是命名空间问题。我想做
var nodes = this.responseXML.selectNodes('//xhtml:div', function (prefix) { if (prefix === 'xhtml') return 'http://www.w3.org/1999/xhtml'; else return null; })
应该有效