Javascript Xml:无法调用方法';getElementsByTagName';空的
我想用javascript从XML文件中获取信息,但我有一个错误,我自己无法解决。。。 “无法调用null的方法'getElementsByTagName'” 我认为这在我的XML中是个问题,但我不知道在哪里 这是我的javascriptJavascript Xml:无法调用方法';getElementsByTagName';空的,javascript,xml,Javascript,Xml,我想用javascript从XML文件中获取信息,但我有一个错误,我自己无法解决。。。 “无法调用null的方法'getElementsByTagName'” 我认为这在我的XML中是个问题,但我不知道在哪里 这是我的javascript var map; var mod; var xmlDoc; var xhr = new XMLHttpRequest(); xhr.overrideMimeType("text/xml"); xhr.open('
var map;
var mod;
var xmlDoc;
var xhr = new XMLHttpRequest();
xhr.overrideMimeType("text/xml");
xhr.open('GET' , 'streamcontrol.xml');
xhr.send();
xhr.onreadystatechange = function(){
xmlDoc = xhr.responseXML;
map = xmlDoc.getElementsByTagName('mapname');
map = xmlDoc.getElementsByTagName('modname');
}
还有我的Xml
<!DOCTYPE StreamControl>
<items>
<timestamp>1408381485</timestamp>
<mapname>hijacked</mapname>
<modname>retd</modname>
</items>
1408381485
劫持
雷特
在onreadystatechange函数中,也许您应该检查就绪状态:
var map;
var mod;
var xmlDoc;
var xhr = new XMLHttpRequest();
xhr.overrideMimeType("text/xml");
xhr.open('GET' , 'streamcontrol.xml');
xhr.send();
xhr.onreadystatechange = function(){
if (xhr.readyState==4 && xhr.status==200)
{
xmlDoc = xhr.responseXML;
map = xmlDoc.getElementsByTagName('mapname');
map = xmlDoc.getElementsByTagName('modname');
}
}
readyState保存XMLHttpRequest的状态:
0:请求未初始化1:已建立服务器连接
2:收到请求
3:处理请求
4:请求已完成,响应已准备就绪
当一切正常时,状态为200,未找到404…感谢您的评论它与节点文档一起工作,如果它能帮助任何人,我将发布我的脚本:
function loadXMLDoc(filename)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else // code for IE5 and IE6
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
xmlDoc=loadXMLDoc('streamcontrol.xml');
map_node=xmlDoc.getElementsByTagName('mapname')[0].childNodes[0];
map = map_node.nodeValue;
xmlDoc可能为空?您正在尝试在收到响应之前访问它
onreadystatechange
被调用多次,每次状态更改调用一次。看一看关于XMLHTTPRequest的教程!