检索XML文件(JavaScript)

检索XML文件(JavaScript),javascript,html,xml,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.XMLHT

我在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>");
}
函数LoadXML(){
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
试一试{
open(“GET”,“file.xml”,false);
警报(“第一名”);
xmlhttp.send();
警报(“第二名”);
}
捕捉(错误){
警报(错误消息);
}
xmlDoc=xmlhttp.responseXML;
文件。书写(“艺人头衔”);
var x=xmlDoc.getElementsByTagName(“CD”);

对于(i=0;iXmlhttprequest),google chrome不推荐它。它在其他浏览器中的用户体验也很差。其次,它在大多数情况下不适用于外部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)
$.ajax
({
键入:“获取”,
url:“file.xml”,
数据类型:“xml”,
成功:xmlParser//调用函数
});
函数xmlParser(xml)
{
HTML=“ArtistTitle”;
var x=$(xml.find(“CD”);

对于(i=0;我当然会假设你想使用jQuery,而OP根本没有提到。如果
file.xml
与你在本地机器上使用的html文件不在同一目录下,那么就没有文件可加载。目标浏览器是IE 8?哇,你的班级不应该使用W3C考试请注意,这里有一些众所周知的错误。你可以删除ie6和ie5的特定代码