当前位置: 首页 > news >正文

js读取xml文档,并实现简单分页

直接贴上代码,这是前台的html处理文档
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>读取Xml并分页</title>

</head>

<body >
   <div id="gao">
      
   </div>
    <div>
       <table align="center">
          <tr>
             <td><input type="button" name="prev" id="prev" value="上一页"  οnclick="showPage('false')"><input type="button" id="next" name="next" value="下一页" οnclick="showPage('true')"> </td>
          </tr>
       </table>
    </div>
<script type="text/javascript">
     function LoadXML(url)
	 {
		var xmlDoc;
		if(window.ActiveXObject)
		{ 
		   xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		   xmlDoc.async="false";
		   xmlDoc.load(url);		    

		}else if(document.implementation&&document.implementation.createDocument)
		{
              xmlDoc=document.implementation.createDocument("","",null);
			  xmlDoc.async=false;
			  xmlDoc.load(url);
		}else
		{
		   alert("You browser cannot handle this script!");
		}
		return xmlDoc;
	 }

	 
	 var xmlDoc=LoadXML("student.xml");
	 var students=xmlDoc.getElementsByTagName("student");
	 var stuLength=students.length;
	 var currentPage=0;
	 var pageSize=2;
	 var maxPage=Math.ceil(stuLength/pageSize);
;		
	 function showPage(page)
	 {
	 var mytable=document.getElementsByTagName("table")[1];
	 if(mytable) document.body.removeChild(mytable); 
	 var table=document.createElement("table");
	 table.setAttribute("id","mytable");
	 table.setAttribute("width","600");
	 table.setAttribute("border","1");
     document.body.appendChild(table);
	
	 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(page=="true")
				currentPage++;
		  else
		    currentPage--;
		  if(currentPage>=maxPage) currentPage=maxPage;
		  else if(currentPage<=0) currentPage=1;
		  var start=(currentPage-1)*pageSize;
		  var end=currentPage*pageSize-1;

		  for(var i=start;i<=end;i++)
		  {
             var e=students[i];
			 var name=e.getAttribute("name");
			 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));
		  }
		  
		  
	 }
	 
	 showPage("true");
	 
</script>
</body>
</html>
在编写过程过,涉及到代码的处理上,由于我最初,将javascript代码放在了head标签里面,结果导致document.body对象为空!
我们都知道,javascript在执行的时候,页面会暂定加载而去执行html代码,所以当js代码放在head标签中的时候,html页面还没有执行到body,故而产生了错误!
后来将js代码,放在了body的尾部,这样,就能够正确引用到body对象了!
同时,在大型网站架构中,也是提高页面加载速度的一种方式!页面首页加载html标签内容,到页面最后,在执行js代码,能在很大程度上提升网页打开速度,提升用户体验!
另外的student.xml内容是
<?xml version="1.0" encoding="utf-8"?>
<students>
   <student name="gaoxing">
       <school>西北大学1</school>
	   <grade>76</grade>
   </student>
   <student name="gaoxing">
       <school>西北大学2</school>
	   <grade>76</grade>
   </student>
   <student name="gaoxing">
       <school>西北大3学</school>
	   <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大学4</school>
	   <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大5学</school>
	   <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大6学</school>
	   <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大7学</school>
	   <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北8大学</school>
	   <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北9大学</school>
	   <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北10大学</school>
	   <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大学</school>
	   <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大学</school>
	   <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大学</school>
	   <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大学</school>
	   <grade>76</grade>
   </student>
</students>

转载于:https://www.cnblogs.com/wpfworld/archive/2011/06/19/2084504.html

相关文章:

  • linux 查找僵死进程,并杀死进程
  • 过滤并替换页面html输出
  • Goldengate实现在线数据迁移
  • 新浪就微博受病毒攻击事件致歉
  • 11g新特性:Note raised when explain plan for create index
  • 在asp.net中如何获取asp:DataList中子控件asp:RadioButtonList的值
  • Laputa在cnblogs
  • sk_buff封装和解封装网络数据包的过程详解
  • android 调用系统摄像头
  • _shared_pool_reserved_pct or shared_pool_reserved_size with ASMM
  • jQuery选择器详解[转]
  • linux 下安装tomcat
  • 上传表单的样式模拟
  • CentOS 6.8无法启动图形界面
  • django login 限制
  • Angular4 模板式表单用法以及验证
  • Apache Pulsar 2.1 重磅发布
  • CAP理论的例子讲解
  • Git同步原始仓库到Fork仓库中
  • JavaScript学习总结——原型
  • Java的Interrupt与线程中断
  • laravel with 查询列表限制条数
  • LeetCode18.四数之和 JavaScript
  • MySQL几个简单SQL的优化
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • 从零开始在ubuntu上搭建node开发环境
  • 判断客户端类型,Android,iOS,PC
  • 我的面试准备过程--容器(更新中)
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​2020 年大前端技术趋势解读
  • ​渐进式Web应用PWA的未来
  • ​批处理文件中的errorlevel用法
  • #Z0458. 树的中心2
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (二)构建dubbo分布式平台-平台功能导图
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (离散数学)逻辑连接词
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (循环依赖问题)学习spring的第九天
  • (一)Java算法:二分查找
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .NET Core 版本不支持的问题
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET连接MongoDB数据库实例教程
  • @Query中countQuery的介绍
  • @RequestMapping-占位符映射
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [20190113]四校联考
  • [Bada开发]初步入口函数介绍
  • [C#] 如何调用Python脚本程序
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理
  • [EFI]DELL XPS13 9360电脑 Hackintosh 黑苹果efi引导文件
  • [ERROR]-Error: failure: repodata/filelists.xml.gz from addons: [Errno 256] No more mirrors to try.