JS读取并输出xml文件节点及属性(兼容IE,FF)

王朝学院·作者佚名  2010-08-09  
宽屏版  字体: |||超大  

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="width:500px;">

</div>

<table border="0" cellspacing="0" cellpadding="0" width="500">

<tr>

<td>&nbsp;</td>

<td>&nbsp;</td>

<td>&nbsp;</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>

</books>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有