JS解析XML
转自:http://cuiran.javaeye.com/blog/445064
文章分类:Java编程 关键字: js javascript xml
goodss.xml
首先写个xml文件
<?xml version="1.0" encoding="UTF-8"?>
<goodss>
<goods>
<name>数码相机</name>
<type>IT数码</type>
<goodsunit>台</goodsunit>
<price>3206(元)</price>
</goods>
<goods>
<name>联想笔记本电脑</name>
<type>IT数码</type>
<goodsunit>台</goodsunit>
<price>3206(元)</price>
</goods>
</goodss>
然后开始xml.jsp
<script type="text/javascript">
function createTable(xmldoc){
var table=document.createElement("table");
table.setAttribute("width","100%");
table.setAttribute("border","1");
table.bordercolor="#FFFFFF";
table.cellSpacing="0";
table.cellPadding="0";
table.bordercolorDark="#FFFFFF";
table.bordercolorLight="#AAAAAA";
parentTd.appendChild(table);//指定位置创建表格
var header=table.createTHead();
header.bgColor="#EEEEEE";//设置表头背景
var headerrow=header.insertRow(0);
headerrow.height="27";
headerrow.insertCell(0).appendChild(document.createTextNode("商品名称"));
headerrow.insertCell(1).appendChild(document.createTextNode("类别"));
headerrow.insertCell(2).appendChild(document.createTextNode("单位"));
headerrow.insertCell(3).appendChild(document.createTextNode("单价"));
var goodss=xmldoc.getElementsByTagName("goods");
for(var i=0;i<goodss.length;i++){
var g=goodss[i];
var name=g.getElementsByTagName("name")[0].firstChild.data;
var type=g.getElementsByTagName("type")[0].firstChild.data;
var goodsunit=g.getElementsByTagName("goodsunit")[0].firstChild.data;
var price=g.getElementsByTagName("price")[0].firstChild.data;
var row=table.insertRow(i+1);
row.height="27";
row.insertCell(0).appendChild(document.createTextNode(name));
row.insertCell(1).appendChild(document.createTextNode(type));
row.insertCell(2).appendChild(document.createTextNode(goodsunit));
row.insertCell(3).appendChild(document.createTextNode(price));
}
}
function readXML(){
var url="goodss.xml";
if(window.ActiveXObject){//IE
var xmldoc=new ActiveXObject("Microsoft.XMLDOM");
xmldoc.onreadystatechange=function(){
if(xmldoc.readyState==4)
createTable(xmldoc);
}
xmldoc.load(url);
}
//Mozilla
else if(document.implementation&&document.implementation.createDocument){
var xmldoc=document.implementation.createDocument("","",null);
xmldoc.οnlοad=function(){
xmldoc.οnlοad=createTable(xmldoc);
}
xmldoc.load(url);
}
}
</script>
在body里面只有写 <body οnlοad="readXML();">
再写个td把id设为parentTd。
<td valign="top" id="parentTd"> </td>
这样就可以了。
首先写个xml文件
<?xml version="1.0" encoding="UTF-8"?>
<goodss>
<goods>
<name>数码相机</name>
<type>IT数码</type>
<goodsunit>台</goodsunit>
<price>3206(元)</price>
</goods>
<goods>
<name>联想笔记本电脑</name>
<type>IT数码</type>
<goodsunit>台</goodsunit>
<price>3206(元)</price>
</goods>
</goodss>
然后开始xml.jsp
<script type="text/javascript">
function createTable(xmldoc){
var table=document.createElement("table");
table.setAttribute("width","100%");
table.setAttribute("border","1");
table.bordercolor="#FFFFFF";
table.cellSpacing="0";
table.cellPadding="0";
table.bordercolorDark="#FFFFFF";
table.bordercolorLight="#AAAAAA";
parentTd.appendChild(table);//指定位置创建表格
var header=table.createTHead();
header.bgColor="#EEEEEE";//设置表头背景
var headerrow=header.insertRow(0);
headerrow.height="27";
headerrow.insertCell(0).appendChild(document.createTextNode("商品名称"));
headerrow.insertCell(1).appendChild(document.createTextNode("类别"));
headerrow.insertCell(2).appendChild(document.createTextNode("单位"));
headerrow.insertCell(3).appendChild(document.createTextNode("单价"));
var goodss=xmldoc.getElementsByTagName("goods");
for(var i=0;i<goodss.length;i++){
var g=goodss[i];
var name=g.getElementsByTagName("name")[0].firstChild.data;
var type=g.getElementsByTagName("type")[0].firstChild.data;
var goodsunit=g.getElementsByTagName("goodsunit")[0].firstChild.data;
var price=g.getElementsByTagName("price")[0].firstChild.data;
var row=table.insertRow(i+1);
row.height="27";
row.insertCell(0).appendChild(document.createTextNode(name));
row.insertCell(1).appendChild(document.createTextNode(type));
row.insertCell(2).appendChild(document.createTextNode(goodsunit));
row.insertCell(3).appendChild(document.createTextNode(price));
}
}
function readXML(){
var url="goodss.xml";
if(window.ActiveXObject){//IE
var xmldoc=new ActiveXObject("Microsoft.XMLDOM");
xmldoc.onreadystatechange=function(){
if(xmldoc.readyState==4)
createTable(xmldoc);
}
xmldoc.load(url);
}
//Mozilla
else if(document.implementation&&document.implementation.createDocument){
var xmldoc=document.implementation.createDocument("","",null);
xmldoc.οnlοad=function(){
xmldoc.οnlοad=createTable(xmldoc);
}
xmldoc.load(url);
}
}
</script>
在body里面只有写 <body οnlοad="readXML();">
再写个td把id设为parentTd。
<td valign="top" id="parentTd"> </td>
这样就可以了。