评论

收藏

[XML/XSL] 不同浏览器对XML的解析是不同的

开发技术 开发技术 发布于:2021-06-29 09:15 | 阅读数:250 | 评论:0

下面这段代码在火狐能够解析,在谷歌和IE就不行了,应该如何来修改代码?如何解析XML呢?
JScript code:
$("#result").append(xmlDoc.firstChild.localName + "<br/><hr>"); 
for ( var i = 0; i < xmlDoc.documentElement.childElementCount; i++) { 
$("#result").append( 
xmlDoc.documentElement.children[i].localName + "<br/>"); 
}
兼容 IE、Firefox、Chrome、Safari、Opera 等浏览器的XML文件加载方式的代码如下,xml文件名为 1.xml。
XML代码
XML code:
<?xml version="1.0" encoding="utf-8"?> 
<note> 
<t1> 
<title>孟子E章的网站</title> 
<url>http://dotnet.aspx.cc/</url> 
</t1> 
<t1> 
<title>孟宪会的博客</title> 
<url>http://blog.csdn.net/net_lover/</url> 
</t1> 
</note>
HTML 代码
HTML code:
<script type="text/javascript"> 
var xmlDoc = null, xmlhttp = null; 
function loadXML() { 
xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp"); 
if (xmlhttp == null) { 
alert("你的浏览器不支持 XMLHttpRequest"); 
return; 
} 
xmlhttp.open("GET", "1.xml?" + Date.parse(new Date()), true); 
xmlhttp.setRequestHeader("Content-Type", "text/xml"); 
xmlhttp.onreadystatechange = getmessage; 
xmlhttp.send(null); 
} 
function getmessage() { 
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
xmlDoc = xmlhttp.responseXML.documentElement; 
if (xmlDoc == null) { 
alert("返回的数据不正确。"); 
return; 
} 
var nodes = xmlDoc.getElementsByTagName("t1") 
tb = document.getElementById("table_note"); 
tbody = document.createElement("tbody") 
for (i = 0; i < nodes.length; i++) { 
tr = document.createElement("tr") 
td = document.createElement("td") 
td.innerHTML = nodes[i].getElementsByTagName("title")[0].childNodes[0].nodeValue 
tr.appendChild(td) 
td = document.createElement("td") 
url = nodes[i].getElementsByTagName("url")[0].childNodes[0].nodeValue; 
td.innerHTML = "<a href='" + url + "'>" + url + "</a>" 
tr.appendChild(td) 
tbody.appendChild(tr) 
} 
tb.appendChild(tbody) 
} 
} 
</script> 
</head> 
<body > 
<table id="table_note" border="1"> 
<tr> 
<td>姓名</td> 
<td>网址</td> 
</tr> 
</table> 
</body> 
</html>
关注下面的标签,发现更多相似文章