复制代码代码如下:
<!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">
<头>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>读取Xml并分页</title>
</头>
<正文>
<div id="高">
</div>
<div>
<表对齐=“中心”>
<tr>
<td><input type="button" name="prev" id="prev" value="上一页" onclick="showPage('false')"><input type="button" id="next" name="next" value="下一页" onclick="showPage('true')"> </td>
</tr>
</表>
</div>
<脚本类型=“文本/javascript”>
函数 LoadXML(url)
{
var xmlDoc;
if(窗口.ActiveXObject)
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=“假”;
xmlDoc.load(url);
}else if(document.implementation&&document.implementation.createDocument)
{
xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async=false;
xmlDoc.load(url);
}别的
{
Alert("您的浏览器无法处理此脚本!");
}
返回 xmlDoc;
}
var xmlDoc=LoadXML("student.xml");
var Students=xmlDoc.getElementsByTagName("学生");
var StuLength=students.length;
var 当前页=0;
var pageSize=2;
var maxPage=Math.ceil(stuLength/pageSize);
函数showPage(页面)
{
var mytable=document.getElementsByTagName("表")[1];
if(mytable) document.body.removeChild(mytable);
var table=document.createElement("表");
table.setAttribute("id","mytable");
table.setAttribute("宽度","600");
table.setAttribute("边框","1");
document.body.appendChild(表);
var header=table.createTHead();
var headerrow=header.insertRow(0);
headerrow.insertCell(0).appendChild(document.createTextNode("姓名"));
headerrow.insertCell(1).appendChild(document.createTextNode("学校"));
headerrow.insertCell(2).appendChild(document.createTextNode("成绩"))
如果(页面==“真”)
当前页++;
别的
当前页--;
if(当前页>=最大页) 当前页=最大页;
否则 if(currentPage<=0) currentPage=1;
var start=(currentPage-1)*pageSize;
var end=当前页*pageSize-1;
for(var i=开始;i<=结束;i++)
{
var e=学生[i];
var name=e.getAttribute("名称");
var school=e.getElementsByTagName("school")[0].firstChild.data;
var Grade=e.getElementsByTagName("grade")[0].firstChild.data;
var row=table.insertRow(i%pageSize+1);
row.insertCell(0).appendChild(document.createTextNode(name));
row.insertCell(1).appendChild(document.createTextNode(school));
row.insertCell(2).appendChild(document.createTextNode(school));
}
}
显示页面(“真”);
</脚本>
</正文>
</html>
在编写过程中,涉及到代码的处理上,由于我一开始,将javascript代码放在了head标签里面,结果导致document.body对象为空!
我们都知道,javascript在执行的时候,页面会暂定加载而执行html代码,所以当js代码去放在head标签中的时候,html页面还没有执行到body,因此而产生了错误!
后来将js代码,放在了body的尾部,这样,就能够正确引用到body对象了!
同时,在大型网站架构中,也是提高页面加载速度的一种方式!页面首页加载html标签内容,到页面最后,在执行js代码,能够在很大程度上提升网页打开速度,提升用户体验!
另外的student.xml内容是
复制代码代码如下:
<?xml 版本=“1.0”编码=“utf-8”?>
<学生>
<学生姓名=“高星”>
<学校>西北大学1</学校>
<等级>76</等级>
</学生>
<学生姓名=“高星”>
<学校>西北大学2</学校>
<等级>76</等级>
</学生>
<学生姓名=“高星”>
<学校>西北大三学</学校>
<等级>76</等级>
</学生>
<学生姓名=“高星”>
<学校>西北大学4</学校>
<等级>76</等级>
</学生>
<学生姓名=“高星”>
<学校>西北大五学</学校>
<等级>76</等级>
</学生>
<学生姓名=“高星”>
<学校>西北大六学</学校>
<等级>76</等级>
</学生>
<学生姓名=“高星”>
<学校>西北大七学</学校>
<等级>76</等级>
</学生>
<学生姓名=“高星”>
<学校>西北第八大学</学校>
<等级>76</等级>
</学生>
<学生姓名=“高星”>
<学校>西北九大学</学校>
<等级>76</等级>
</学生>
<学生姓名=“高星”>
<学校>西北十大学</学校>
<等级>76</等级>
</学生>
<学生姓名=“高星”>
<学校>西北大学</学校>
<等级>76</等级>
</学生>
<学生姓名=“高星”>
<学校>西北大学</学校>
<等级>76</等级>
</学生>
<学生姓名=“高星”>
<学校>西北大学</学校>
<等级>76</等级>
</学生>
<学生姓名=“高星”>
<学校>西北大学</学校>
<等级>76</等级>
</学生>
</学生>