我正在尝试将特定内容从XML加载到HTML div . 我正在使用带参数的函数来执行此操作 .
这是我的功能调用:
loadDoc("news.xml","destak-article","article");
这应该发送xml文件的请求,获取«article»标签的内容并将其放在«destak-article»div上 .
这是我的函数体:
function loadDoc(url,id,tagname){
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest(); // code for IE7+, Firefox, Chrome, Opera, Safari
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); // code for IE6, IE5
}
xmlhttp.open("GET",url,false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
document.getElementById(id).innerHTML = xmlDoc.getElementsByTagName(tagname)[0].childNodes[0].nodeValue;
}
但这似乎不起作用 . 在Chrome js控制台上,我收到此错误:
Cannot call method 'getElementsByTagName' of null
在Firebug上我得到:
xmlDoc.getElementsByTagName(tagname)[0] is undefined
任何帮助深表感谢 .
2 回答
您验证了服务器响应吗?在代码中使用一些错误检查 . 例如:
您需要注册一个处理函数,该函数将在请求完成后调用 . 你可以看到example of how to do that here.
's happening in your case is that you'在发送请求后立即尝试获取
xmlDoc
并且服务器没有时间处理请求并做出响应 .