Использование XML Parser для получения последних видео с YouTube от пользователя - PullRequest
0 голосов
/ 29 февраля 2012

Yo!

Итак, моя цель - загрузить три самых последних видео, загруженных пользователем YouTube, в данном случае «aosjeff».Я понимаю, что могу отправить запрос «get» на youtube, а затем проанализировать этот XML-документ, используя синтаксический анализатор XML (я не могу использовать php, сайт, который я использую для создания сайта, не позволяет), и я пытаюсьиспользовать некоторый код здесь, чтобы сохранить результаты запроса "get" в строке в javascript, чтобы я мог их проанализировать.Но всякий раз, когда я запускаю этот код и вызываю «alert (txt)», возвращается только строка «[object document]», а не данные xml.Вот код:

function getVideoHTML()
{
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("GET","https://gdata.youtube.com/feeds/api/users/aosjeff/uploads",false);
    xmlhttp.send();

    txt = xmlhttp.responseXML;

    if (window.DOMParser)
    {
        parser=new DOMParser();
        xmlDoc=parser.parseFromString(txt,"text/xml");
    }
    else // Internet Explorer
    {
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async=false;
        xmlDoc.loadXML(txt);
    }

    //document.getElementById("to").innerHTML=
    //xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
    //document.getElementById("from").innerHTML=
    //xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
    //document.getElementById("message").innerHTML=
    //xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
    alert(txt);
}

Это одна проблема.Другой, я думаю, как использовать парсер - о котором я читал, но до сих пор не понимаю.Можете ли вы все объяснить, как это работает?Я понимаю, что я ищу определенный тег - и что тогда он дает мне список элементов в этом теге.Но как мне перемещаться по этому списку?

Приветствия, спасибо за ваше время

Симон

1 Ответ

2 голосов
/ 01 марта 2012

Вам не нужно анализировать свойство responseXML с помощью DOMParser, потому что это уже объект XML.Используйте методы анализа строки-xml (рекомендуется) или замените свойство responseXML на responseText.

txt = xmlhttp.responseXML; // <-- This is a XML document object

if (window.DOMParser) {
    parser = new DOMParser();
    xmlDoc=parser.parseFromString(txt,"text/xml"); // <--- txt should be a string
} else {....}

должно быть:

xmlDoc = xmlhttp.responseXML;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...