我在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
提前致谢
答案 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)