【问题标题】:Using XML Parser to get recent youtube videos from a user使用 XML Parser 从用户那里获取最近的 youtube 视频
【发布时间】:2012-03-19 06:55:53
【问题描述】:

哟!

因此,我的目标是获取 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);
}

这是一个问题。另一个,我猜,是如何使用解析器——我读过但仍然不明白。大家能解释一下它是如何工作的吗?我知道我搜索某个标签 - 然后它给了我该标签中元素的列表。但是如何浏览该列表?

干杯,感谢您的宝贵时间

西蒙

【问题讨论】:

  • 有人知道吗?我有点卡住了。

标签: javascript xml api parsing youtube


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-05
    • 2012-09-19
    • 2020-12-07
    • 1970-01-01
    • 2017-08-05
    • 2020-08-17
    • 2012-03-18
    • 1970-01-01
    相关资源
    最近更新 更多