最近用xml做数据库做了实验,就是把用户提交的表单存储到服务端xml文件中,由于xml文件读起来没表格数据直观,所以想把xml文件导出到表格中。用ajax请求xml文件,然后以表格形式导出。
xml文件的用户节点大致有7个子节点,用户名、密码、密码提示问题、答案、邮箱、身份证、手机号码。
js代码实现如下:
var xmlhttp;
function responseUsers(url)
{
xmlhttp=null;
if (window.XMLHttpRequest)
{// code for IE7, Firefox, Opera, etc.
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=state_Change;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
else
{
alert("Your browser does not support XMLHTTP.");
}
}
function state_Change()
{
if (xmlhttp.readyState==4)
{// 4 = "loaded"
if (xmlhttp.status==200)
{// 200 = "OK"
txt="<table border='1'>";
txt=txt+"<thead><th>username</th><th>password</th><th>密码提示问题</th><th>答案</th><th>身份证</th><th>手机号码</th><th>邮箱</th></thead>";
txt=txt+"<tbody>";
var x=new Array();
//x=xmlhttp.responseXML.documentElement.childNodes;
if(navigator.appName=="Netscape")//for firefox
{
var parser = new DOMParser();
var xml = parser.parseFromString(xmlhttp.responseText, "text/xml");
// var x=new Array();
x=xml.documentElement.childNodes;
for (i=0;i<x.length;i++)
{
var xx=new Array();
txt=txt + "<tr>";
xx=x[i].getElementsByTagName("field");
// xx=x[i].childNodes;
{
try
{
txt=txt + "<td>" + xx[0].childNodes[0].textContent+ "</td>";
txt=txt + "<td>" + xx[1].childNodes[0].textContent + "</td>";
//txt=txt + "<td>" + xx[2].childNodes[0].text + "</td>";
txt=txt + "<td>" + xx[3].childNodes[0].textContent + "</td>";
txt=txt + "<td>" + xx[4].childNodes[0].textContent + "</td>";
txt=txt + "<td>" + xx[5].childNodes[0].textContent + "</td>";
txt=txt + "<td>" + xx[6].childNodes[0].textContent + "</td>";
txt=txt + "<td>" + xx[7].childNodes[0].textContent + "</td>";
}
catch (er)
{
txt=txt + "<td> </td>";
}
}
txt=txt + "</tr>";
}
}
else //for ie opera
{
x=xmlhttp.responseXML.documentElement.childNodes;
for (i=0;i<x.length;i++)
{
var xx=new Array();
txt=txt + "<tr>";
xx=x[i].getElementsByTagName("field");
// xx=x[i].childNodes;
{
try
{
txt=txt + "<td>" + xx[0].childNodes[0].text+ "</td>";
txt=txt + "<td>" + xx[1].childNodes[0].text + "</td>";
//txt=txt + "<td>" + xx[2].childNodes[0].text + "</td>";
txt=txt + "<td>" + xx[3].childNodes[0].text + "</td>";
txt=txt + "<td>" + xx[4].childNodes[0].text + "</td>";
txt=txt + "<td>" + xx[5].childNodes[0].text + "</td>";
txt=txt + "<td>" + xx[6].childNodes[0].text + "</td>";
txt=txt + "<td>" + xx[7].childNodes[0].text + "</td>";
}
catch (er)
{
txt=txt + "<td> </td>";
}
}
}
}
txt=txt +"</tboby>"+ "</table>";
document.getElementById('users').innerHTML=txt;
//document.getElementById('users').innerHTML=xmlhttp.responseText;
// document.getElementById('A2').innerHTML=xmlhttp.statusText;
// document.getElementById('A3').innerHTML=xmlhttp.responseText;
}
else
{
alert("Problem retrieving XML data:" + xmlhttp.statusText);
}
}
}