JS读取XML文件

文件:austin.js

<script type="text/javascript">
var Url="austin.xml";
var cdsales=new ActiveXObject("Microsoft.XMLDOM"); //创建XmlDom对象
cdsales.async=true; //异步加载
cdsales.load(Url);
cdsales.onreadystatechange= new function LoadedSales(){
    var txt="";
    if(cdsales.readyState==4){
     if(cdsales.parseError.errorCode != 0){
      txt="err";
     }
     else{
      var bi=cdsales.documentElement.selectNodes("item");
      if(bi!=null&&bi.length>0){
       for(var i=0;i<bi.length;i++){
        txt+="<li><a href="+bi[i].childNodes[1].text+" style=color:"+bi[i].childNodes[2].text+">"+bi[i].childNodes[0].text+"</a></li>";
       }
      }
      else{
       txt="LoadingErr...";
      }
     }
    }
    else{
     txt="Loading....";
    }
    document.write(txt);
}
</script>

文件:austin.xml

<?xml version="1.0" encoding="gb2312"?>
<root>
    <item>
      <txt>安安的测试内容</txt>
      <url>http://hi.baidu.com/austin82</url>
      <color>green</color>
    </item>
    <item>
      <txt>Austin的测试内容</txt>
      <url>http://hi.baidu.com/austin82</url>
      <color>blue</color>
    </item>
</root>

JS读取并输出xml文件节点及属性(兼容IE,FF)
这个东西让我好难找啊,不过还是找到了。

好东东不能自己藏着,发出来分享一下了,^_^ |

book.html   代码如下:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

<!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>
<script language="javascript">
var xmlDoc;
var browse="";
function loadXML()
{
    var fileRoute="books.xml"
    if (window.ActiveXObject)
    {
        xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
        xmlDoc.async=false;
        xmlDoc.load(fileRoute);
        browse="ie";
    }
    else if (document.implementation && document.implementation.createDocument)
    {
        xmlDoc=document.implementation.createDocument('', '', null);
        xmlDoc.load(fileRoute);
        browse="ff";
    }
    else
    {
    alert( '未做与该浏览器的兼容!');
    }
}

function getmessage()
{
    var msg='<table border="1" cellspacing="0" cellpadding="0" width="500">';
    msg+='<tr><td width="90"></td><td width="100">图书编号</td><td width="100">种类编号</td><td width="110">图书名称</td><td width="100">作者</td></tr>'
    if(browse=="ff")
    {
        var cNodes = xmlDoc.getElementsByTagName("book");
        for(j=0;j<cNodes.length;j++)
        {
            var bookID=xmlDoc.getElementsByTagName("book")[j].getAttribute("id");
            var sortID=xmlDoc.getElementsByTagName("book")[j].getAttribute("sortID");
            var bookTitle=xmlDoc.getElementsByTagName("title")[j].childNodes[0].nodeValue;
            var bookAuthor=xmlDoc.getElementsByTagName("author")[j].childNodes[0].nodeValue;
            msg+='<tr><td>'+j+'</td><td>'+bookID+'</td><td width="100">'+sortID+'</td><td width="190">'+bookTitle+'</td><td width="120">'+bookAuthor+'</td></tr>'
        }
    }
    else if(browse=="ie")
    {
        var state = xmlDoc.readyState;
        if (state == 4)
        {
            var oNodes = xmlDoc.selectNodes("//books/book");
            for(j=0;j<oNodes.length;j++)
            {
                var bookID=oNodes[j].getAttribute("id");
                var sortID=oNodes[j].getAttribute("sortID");
                var bookTitle=oNodes[j].childNodes[0].text;
                var bookAuthor=oNodes[j].childNodes[1].text;
                msg+='<tr><td>'+j+'</td><td>'+bookID+'</td><td width="100">'+sortID+'</td><td width="190">'+bookTitle+'</td><td width="120">'+bookAuthor+'</td></tr>'
            }
        }
    }
    msg+='</table>';
    //alert(msg)
    document.getElementById("bookList").innerHTML=msg;
}

</script>
</head>
<body onload="loadXML();">
<div id="bookList" style="500px;">
</div>
<table border="0" cellspacing="0" cellpadding="0" width="500">
<tr>
    <td> </td>
    <td> </td>
    <td> </td>
    <td> </td>
</tr>
</table>
<input name="button" type="button" onclick="getmessage()" value="onclick" />
</body>
</html>

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

books.xml 代码如下:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

<?xml version="1.0" encoding="gb2312"?>
<books>
    <book id="4" sortID="a4">
        <title>author4aa</title>
        <author>author4</author>
    </book>
    <book id="5" sortID="a5">
        <title>author55</title>
        <author>author5</author>
    </book>
    <book id="6" sortID="a6">
        <title>booktitle</title>
        <author>author6</author>
    </book>
    <book id="7" sortID="a7">
        <title>booktitle</title>
        <author>author7</author>
    </book>
    <book id="8" sortID="a8">
        <title>booktitle</title>
        <author>author8</author>
    </book>
    <book id="15" sortID="a15">
        <title>author155</title>
        <author>author15</author>
    </book>

原文地址:https://www.cnblogs.com/elliot-vicky/p/3528666.html