检索XML文件(JavaScript)

时间:2015-01-29 21:10:42

标签: javascript html xml

我在W3Schools上找到了这个代码并对其进行了改进,最终它变成了这样的代码:

    function LoadXML(){
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  try{
xmlhttp.open("GET","file.xml",false);
    alert("first place");

xmlhttp.send();
    alert("2nd place");
}
catch(err){
alert(err.message);
}
xmlDoc=xmlhttp.responseXML; 

document.write("<table><tr><th>Artist</th><th>Title</th></tr>");
var x=xmlDoc.getElementsByTagName("CD");
for (i=0;i<x.length;i++)
  { 
  document.write("<tr><td>");
 alert( document.write(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue));
  document.write("</td><td>");
 alert( document.write(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue));
  document.write("</td></tr>");
  }
document.write("</table>");
}

此代码位于:W3School Code

但是当我想在自己的PC上运行此代码时,try和catch块会发生错误! 它表明&#34;无法加载&#34; file.xml&#34; 。 当我搜索此错误时,此link中的主题是错误的原因,所以我似乎无法在我自己的PC中执行类似操作,因为它使用http并需要服务器或本地主持人。

但是这段代码适用于我班级的项目,其中一个场景是(检索XML文件的元素并在我的HTML页面上显示其内容)!

我相信他们会在自己的电脑上测试这个程序。

那么有人能解释一下在PC中完成这个场景的方法吗?!

注意:目标浏览器是IE 8.0

提前致谢

1 个答案:

答案 0 :(得分:0)

谷歌浏览器不推荐使用Xmlhttprequest。它对其他浏览器也有糟糕的用户体验。接下来,它在大多数情况下不适用于外部xml文件。 因此我建议不要使用它。而是使用$ .ajax。使用document.getElementById而不是document.write也可能更好。但是这取决于你。这样的事情应该有效:

$.ajax
    ({
      type: "GET",
      url: "file.xml",
      dataType: "xml",
      success: xmlParser // call function
    });

function xmlParser(xml) 
{
  HTML = "<table><tr><th>Artist</th><th>Title</th></tr>";
  var x=$(xml).find("CD");
  for (i=0;i<x.length;i++)
  { 
    HTML += "<tr><td>";
    HTML += i+1;
    HTML += "</td><td>";
    HTML += $(x[i]).find("artist").text()
    HTML += "</td><td>";
    HTML += $(x[i]).find("title").text()
    HTML += "</td></tr>";
  }
  HTML += "</table>";
  document.getElementById("yourdiv").innerHTML = HTML;        
} // function xmlParser(xml)