Получить узлы из responseText с помощью xpath - PullRequest
2 голосов
/ 09 июля 2011

Я хочу получить все элементы div с веб-сайта, используя xpath.Я использую 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 ...    


    }
}

1 Ответ

0 голосов
/ 11 октября 2012

Ну, тогда это проблема пространства имен. Я думаю, что делает

var nodes = this.responseXML.selectNodes('//xhtml:div', function (prefix) { if (prefix === 'xhtml') return 'http://www.w3.org/1999/xhtml'; else return null; }) 

должно работать

...