javascript DOM解析器解析XML文档
创建解析器
loadXML = function(xmlFile) { var xmlDoc; //Internet Explorer 内核的浏览器 if(window.ActiveXObject) { xmlDoc = new ActiveXObject('Microsoft.XMLDOM'); xmlDoc.async = false; xmlDoc.load(xmlFile); } //Mozilla 浏览器内核 else if(window.DOMParser){ var p=new DOMParser; return p.parseFormString(xmlFile,"text/xml"); } else { return null; } return xmlDoc; }
对XML文档的判断
checkXMLDocObj = function(xmlFile) { var xmlDoc = loadXML(xmlFile); if(xmlDoc==null) { alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!'); } else{ alert('能够支持'); } return xmlDoc; }
分析解析器产生的内容
function createRow(data){ var row=new Array(); alert("条目"+data.length); for(var i=0;i<data.length;i++){ row[i]=document.createElement("tr"); for(var j=0;j<6;j++){ var cell,txtNode; cell=document.createElement("td"); cell.setAttribute("border","0"); alert(data[i][j]); txtNode=document.createTextNode(data[i][j]); cell.appendChild(txtNode); row[i].appendChild(cell); } } return row; }
function pareXML(){ var xmlDoc = checkXMLDocObj('book.xml'); var aCountent=xmlDoc.getElementsByTagName("COMPUTERBOOK"); alert('调试'+aCountent.length); var content=new Array(); for(var i=0;i<aCountent.length;i++){ content[i]=[aCountent[i].childNodes[0].text,aCountent[i].childNodes[1].text,aCountent[i].childNodes[2].text,aCountent[i].childNodes[3].text,aCountent[i]. childNodes[4].text,aCountent[i].childNodes[5].text]; alert(content[i]); }
var newRow=createRow(content); var displayTable=document.getElementById("display");
for(var i=0;i<aCountent.length;i++){ displayTable.appendChild(newRow[i]); } }