使用XML Parser从用户那里获取最近的youtube视频

Using XML Parser to get recent youtube videos from a user

本文关键字:最近 youtube 视频 获取 那里 XML Parser 用户 使用      更新时间:2023-09-26

Yo!

所以,我的目标是让一个youtube用户上传三个最新的视频,在这个例子中是"aosjeff"。我知道我可以向youtube发送一个"get"请求,然后使用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);
}

这是一个问题。另一个,我想,是如何使用解析器——我已经读过了,但仍然不理解。你们能解释一下它是怎么工作的吗?我知道我搜索某个标记,然后它会给我一个该标记中元素的列表。但我该如何浏览该列表?

干杯,谢谢你抽出时间

Simon

您不必使用DOMParser解析responseXML属性,因为它已经是一个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;