Javascript 使用XML解析器从用户获取最近的youtube视频
哟! 所以,我的目标是让youtube用户上传最近的三个视频,在本例中是“aosjeff”。我知道我可以向youtube发送一个“get”请求,然后使用xml解析器解析该xml文档(我不能使用php,我正在使用的网站建设网站不允许我这样做),并且我尝试在这里使用一些代码以javascript的字符串形式存储“get”请求的结果,以便我可以解析它们。但每当我运行此代码并调用“alert(txt)”,只返回字符串“[object document]”,而不是xml数据。代码如下:Javascript 使用XML解析器从用户获取最近的youtube视频,javascript,xml,api,parsing,youtube,Javascript,Xml,Api,Parsing,Youtube,哟! 所以,我的目标是让youtube用户上传最近的三个视频,在本例中是“aosjeff”。我知道我可以向youtube发送一个“get”请求,然后使用xml解析器解析该xml文档(我不能使用php,我正在使用的网站建设网站不允许我这样做),并且我尝试在这里使用一些代码以javascript的字符串形式存储“get”请求的结果,以便我可以解析它们。但每当我运行此代码并调用“alert(txt)”,只返回字符串“[object document]”,而不是xml数据。代码如下: function
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;