logo

兼容 IE、Firefox、Chrome、Safari、Opera 等浏览器的 XML 文件加载方式

作者:孟宪会 阅读:3559 发表于:2011-02-10 17:32:52

代码如下,xml 文件名为 1.xml。

1.XML代码
<?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 代码
<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 onload="loadXML()">
  
<table id="table_note" border="1">
    
<tr>
      
<td>姓名</td>
      
<td>网址</td>
    
</tr>
  
</table>
</body>
</html>