XML Parser似乎不能在我的javascript中工作

时间:2014-05-26 06:15:03

标签: javascript xml parsing

我试图从JavaScript文件中读取我的XML文件。

XML文件:

<?xml version="1.0" encoding="utf-8"?>
<pct>
    <occ>
        <morphology>A</morphology>
        <morphology>B</morphology>
        <morphology>C</morphology>
    <morphology>D</morphology>
    </occ>
    <life>
        <morphology>X</morphology>
        <morphology>Y</morphology>
        <morphology>Z</morphology>
    </life>
</pct>

以下是Javascript代码段:

function loadDynamic(){
xmlDoc = loadXMLDoc("data.xml");
    ......
}

function loadXMLDoc(filename){
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",filename,true);
xmlhttp.send();
return xmlhttp.responseXML;
}

现在我知道我的loadXMLDoc函数正在运行,因为当我检查Chrome控制台时,我在xmlhttp.responseXML中看到了我的XML文档。但我的xmlDoc始终为null。

我对我出错的地方一无所知,任何帮助都会非常感激!

谢谢!

1 个答案:

答案 0 :(得分:0)

我怀疑当你检查它时,你需要给出完成的通话时间,但是当你的程序运行时它会在通话完成之前返回responseXML(所以它仍然是空)。

您可以通过关闭异步请求来防止这种情况 - 基本上,只需将您的true更改为false:

xmlhttp.open("GET",filename,false);