浏览器的兼容(通用(火狐和IE)):
function xmlDom(){
var dom;
if(window.ActiveXObject){
var arr=["MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument","Microsoft.XMLDOM"];
for(var i=0;i<arr.length;i++){
dom=new ActiveXObject(arr[i]);
}
}else if(document.implementation&&document.implementation.createDocument){
dom=document.implementation.createDocument("","",null);
}else{
throw new Error("你的浏览器不支持xml Dom");
}
return dom;
}
XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<Books>
<Book id="1">
<bookName>编程珠玑</bookName>
<bookAuthor>Jon Bentley</bookAuthor>
<bookISBN>7-5083-1914-1</bookISBN>
<bookPrice>28.0</bookPrice>
</Book>
<Book id="2">
<bookName>Java编程思想(第2版)</bookName>
<bookAuthor>Bruce Eckel</bookAuthor>
<bookISBN>7-111-10441-2</bookISBN>
<bookPrice>99.0</bookPrice>
</Book>
<Book id="3">
<bookName>Inside VCL(深入核心VCL架构剖析)</bookName>
<bookAuthor>李维</bookAuthor>
<bookISBN>7-5053-9489-4</bookISBN>
<bookPrice>80.0</bookPrice>
</Book>
</Books>
js解析books.XML代码:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>js解析XML</title>
<script>
function xmlDom(){
var dom;
if(window.ActiveXObject){
var arr=["MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument","Microsoft.XMLDOM"];
for(var i=0;i<arr.length;i++){
dom=new ActiveXObject(arr[i]);
}
}else if(document.implementation&&document.implementation.createDocument){
dom=document.implementation.createDocument("","",null);
}else{
throw new Error("你的浏览器不支持xml Dom");
}
return dom;
}
window.on
load=function(){
var dom=xmlDom();
dom.async=false;
dom.load("books.xml");
if(window.DOMParser&&!window.ActiveXObject){
var xmlhttp=new XMLHttpRequest();
xmlhttp.on
readystatechange=function(){
if(xmlhttp.readyState==4){//4="loaded"
if(xmlhttp.status==200){//200=OK
dom=xmlhttp.responseXML.documentElement;
}
}else{
alert("Problem retrieving XML date");
}
}
xmlhttp.open("GET","books.xml",false);
xmlhttp.send(null);
}else{
dom=xmlDom();
dom.async=false;
dom.load("books.xml");
}
var books=dom.getElementsByTagName("Book");
var info="";
for(var i=0;i<books.length;i++){
info+="<tr><td>"+books[i].getAttribute("id")+"</td><td>"+
books[i].getElementsByTagName("bookName")[0].firstChild.nodeValue+"</td><td>"+
books[i].getElementsByTagName("bookAuthor")[0].firstChild.nodeValue+"</td><td>"+
books[i].getElementsByTagName("bookISBN")[0].firstChild.nodeValue+"</td><td>"+
books[i].getElementsByTagName("bookPrice")[0].firstChild.nodeValue+"</td></tr>";
}
document.getElementById("bookInfo").innerHTML=info;
}
</script>
</head>
<body>
<table align="center" border="1px" cellpadding="0px" cellspacing="0px" width="80%">
<thead>
<tr>
<th>书本编号</th>
<th>书名</th>
<th>作者</th>
<th>版本号</th>
<th>价格</th>
</tr>
</thead>
<tbody id="bookInfo">
</tbody>
</table>
</body>
</html>
运行结果图:
书本编号 | 书名 | 作者 | 版本号 | 价格 |
---|---|---|---|---|
1 | 编程珠玑 | Jon Bentley | 7-5083-1914-1 | 28.0 |
2 | Java编程思想(第2版) | Bruce Eckel | 7-111-10441-2 | 99.0 |
3 | Inside VCL(深入核心VCL架构剖析) | 李维 | 7-5053-9489-4 | 80.0 |