javascript中xml操作实现代码


Posted in Javascript onNovember 21, 2011

JavaScript 端:

//初始化页面 
function init() { 
var ary = JSONToArray(XMLReader("node","content.dibi")); 
var divtoc = document.getElementById("div_toc"); 
pageCount = ary.length; 
for(k = 0; k < ary.length; k++){ 
obj = eval('(' + ary[k] + ')'); 
divtoc.innerHTML += "<a href='javascript:changeImage(" + obj.page.substring(obj.page.length-1) + ")'>" 
+ obj.label + "</a>      "; 
} page = 1; 
changeImage(page); 
var pageManager = document.getElementById("div_page"); 
pageManager.innerHTML = "<a href='javascript:changePage(0)'>上一页</a>      " 
+ "<a href='javascript:changePage(1)'>下一页</a><br/><br/>"; 
var ary2 = JSONToArray(XMLReader("meta","content.dibi")); 
var divmeta = document.getElementById("div_meta"); 
var styStr = "<table>" 
for(l = 0; l < ary2.length; l++){ 
obj2 = eval('(' + ary2[l] + ')'); 
styStr += "<tr><td>" + obj2.name + "</td><td>" + obj2.content + "</td></tr>"; 
} 
divmeta.innerHTML = styStr + "</table>"; 
} 
//解析.dibi 文件。 
function XMLReader(key,fileName) { 
var parse = BrowserValidator(); 
parse.load(fileName); 
var json = ""; 
try{ 
var dom = parse.documentElement; 
var attrLength = 0; 
for (i = 0; i < dom.getElementsByTagName(key).length; i++) { 
attrLength = dom.getElementsByTagName(key)[i].attributes.length; 
objMsg = ",{"; 
for(j = 0; j < attrLength; j++){ 
objMsg += "'" + dom.getElementsByTagName(key)[i].attributes[j].name 
+ "':'" + dom.getElementsByTagName(key)[i].attributes[j].value + "',"; 
} 
objMsg = objMsg.substring(0,objMsg.length-1); 
json += objMsg + "}"; 
} 
json = json.substring(1); 
}catch(e){} 
return json; 
} 
//判断浏览器类型。支持 IE ,fireFox。 
function BrowserValidator(){ 
var result; 
if(!window.DOMParser && window.ActiveXObject) { 
result = new ActiveXObject("Microsoft.XMLDOM"); 
result.async = false; 
} 
else if(document.implementation && document.implementation.createDocument) { 
result = document.implementation.createDocument("", "", null); 
result.async = false; 
} 
return result; 
} 
var page = 1; //当前页 
var pageCount; //总页数 
//根据点击改变页面图片 
function changeImage(page1){ 
page = page1; 
var divimg = document.getElementById("div_img"); 
divimg.innerHTML = "<img width='500' src = 'images/" + page +".jpg'/>"; 
} 
//上页及下页 
function changePage(flag){ 
if(flag == 0 && page > 1){ 
page--; 
} 
if(flag == 1 && page < pageCount){ 
page++; 
} 
changeImage(page); 
} 

//将 JSON 数据转换成数组 
function JSONToArray(json){ 
return json.replace(new RegExp("},", "g"), "}|").split("|"); 
}

HTML 端:
<html> 
<head> 
<title></title> 
<script language="javascript" type="text/javascript" charset='gbk' src="xmlhelper.js"></script> 
</head> 
<body onload="init()"> 
<div id="div_toc"></div> 
<div id="div_img"></div> 
<div id="div_page"></div> 
<div id="div_meta"></div> 
</body> 
</html>

XML 端:略。
Javascript 相关文章推荐
javascript之典型高阶函数应用介绍二
Jan 10 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
Mar 25 Javascript
javascript实现TreeView 无刷新展开的实例代码
Jul 13 Javascript
artDialog双击会关闭对话框的修改过程分享
Aug 05 Javascript
原生js做的手风琴效果的导航菜单
Nov 08 Javascript
js取消单选按钮选中并判断对象是否为空
Nov 14 Javascript
jQuery 计算iframe 窗口大小的方法
May 13 Javascript
JavaScript实现找出数组中最长的连续数字序列
Sep 03 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
Sep 14 Javascript
jQuery实现判断上传图片类型和大小的方法示例
Apr 11 jQuery
Electron vue的使用教程图文详解
Jul 05 Javascript
解决vue打包 npm run build-test突然不动了的问题
Nov 13 Javascript
js调用activeX获取u盘序列号的代码
Nov 21 #Javascript
15个款优秀的 jQuery 图片特效插件推荐
Nov 21 #Javascript
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
Nov 21 #Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
Nov 19 #Javascript
ToolTips JQEURY插件之简洁小提示框效果
Nov 19 #Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
Nov 19 #Javascript
20款效果非常棒的 jQuery 插件小结分享
Nov 18 #Javascript
You might like
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
javascript验证身份证号
2015/03/03 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
详解AngularJS控制器的使用
2016/03/09 Javascript
javascript prototype原型详解(比较基础)
2016/12/26 Javascript
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
JS判断数组那点事
2017/10/10 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
[02:03]完美世界DOTA2联赛10月30日赛事集锦
2020/10/31 DOTA
Python使用struct处理二进制的实例详解
2017/09/11 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
Python3爬虫全国地址信息
2019/01/05 Python
python开头的coding设置方法
2019/08/08 Python
通过实例了解Python异常处理机制底层实现
2020/07/23 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
关于python中导入文件到list的问题
2020/10/31 Python
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
生物化学研究助理员求职信
2013/10/09 职场文书
校园网站的创业计划书范文
2013/12/30 职场文书
建筑项目策划书
2014/01/13 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
redis内存空间效率问题的深入探究
2021/05/17 Redis
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis