检索XML文件(JavaScript)
我在W3Schools上找到了这段代码并对其进行了改进,最后它变成了这样:检索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
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的特定代码