JS讀取XML文件數據並以table顯示數據(兼容IE火狐)

先看xml文件:javascript

<?xml version="1.0" standalone="yes"?>
<student>
  <stuinfo>
    <stuName>張秋麗</stuName>
    <stuSex></stuSex>
    <stuAge>18</stuAge>
  </stuinfo>
  <stuinfo>
    <stuName>李文才</stuName>
    <stuSex></stuSex>
    <stuAge>31</stuAge>
  </stuinfo>
  <stuinfo>
    <stuName>李斯文</stuName>
    <stuSex></stuSex>
    <stuAge>22</stuAge>
  </stuinfo>
  <stuinfo>
    <stuName>馬英</stuName>
    <stuSex></stuSex>
    <stuAge>25</stuAge>
  </stuinfo>
  <stuinfo>
    <stuName>孫紅雷</stuName>
    <stuSex></stuSex>
    <stuAge>32</stuAge>
  </stuinfo>
  <stuinfo>
    <stuName>歐陽俊雄</stuName>
    <stuSex></stuSex>
    <stuAge>28</stuAge>
  </stuinfo>
  <stuinfo>
    <stuName>江琳</stuName>
    <stuSex></stuSex>
    <stuAge>23</stuAge>
  </stuinfo>
  <stuinfo>
    <stuName>小小</stuName>
    <stuSex></stuSex>
    <stuAge>22</stuAge>
  </stuinfo>
</student>
View Code

aspx頁面代碼:html

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="獲取數據庫數據生成XML.aspx.cs" Inherits="Chapter1.獲取數據庫數據生成XML" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function loadXMLDoc(dname) {
            if (window.XMLHttpRequest) {
                xhttp = new XMLHttpRequest();
            }
            else {
                xhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xhttp.open("GET", dname, false);
            xhttp.send("");
            return xhttp.responseXML;
        }
        function ReadXml() {
            var xmldoc = loadXMLDoc("Student.xml");
            //得到指定節點
            var divmsg = document.getElementById("xmlMsg");
            var msg = "<table border='1' id='mytable'><tr><th>姓名</th><th>性別</th><th>年齡</th><tr>";
            var nodes = xmldoc.getElementsByTagName("stuinfo");
            for (var i = 0; i < nodes.length; i++) {
                msg += "<tr>";
                msg += "<td>" + nodes[i].getElementsByTagName("stuName")[0].firstChild.nodeValue + "</td>";
                msg += "<td>" + nodes[i].getElementsByTagName("stuSex")[0].firstChild.nodeValue + "</td>";
                msg += "<td>" + nodes[i].getElementsByTagName("stuAge")[0].firstChild.nodeValue + "</td>";
                msg += "</tr>";
            }
            msg += "</table>";
            divmsg.innerHTML = msg;
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input type="button" value="JS讀取XML" onclick="ReadXml()" /><br />
        <div id="xmlMsg">
        </div>
    </div>
    </form>
</body>
</html>

上面的JS操做主要就避免了使用childNodes(由於火狐中有時候會出現childNodes[0]獲取到的是"\n"而不是咱們想要的第一個子節點,這個本身能夠去試下,反正我是遇到了這種狀況),使得能夠兼容IE、火狐,其餘瀏覽器我沒試。java

相關文章
相關標籤/搜索