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中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
Aug 12 Javascript
鼠标滑上去后图片放大浮出效果的js代码
May 28 Javascript
JQuery 图片滚动轮播示例代码
Mar 24 Javascript
简单谈谈javascript中的变量、作用域和内存问题
Aug 30 Javascript
jquery实现简单的二级导航下拉菜单效果
Sep 07 Javascript
JS随机洗牌算法之数组随机排序
Mar 23 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
Oct 27 Javascript
微信小程序 wx.uploadFile无法上传解决办法
Dec 14 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
Dec 21 Javascript
从零学习node.js之文件操作(三)
Feb 21 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
Sep 14 Javascript
微信小程序实现弹框效果
May 26 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
体育彩票排列三组选三算法分享
2014/03/07 PHP
php实现mysql封装类示例
2014/05/07 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
网页常用特效代码整理
2006/06/23 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
纯js实现倒计时功能
2017/01/06 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
2017/11/27 Javascript
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
[03:24]2014DOTA2国际邀请赛 神秘商店生意火爆
2014/07/18 DOTA
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
python图像处理之反色实现方法
2015/05/30 Python
Python读取MRI并显示为灰度图像实例代码
2018/01/03 Python
python正则表达式及使用正则表达式的例子
2018/01/22 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
python 实现多线程下载视频的代码
2019/11/15 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
请假条怎么写
2014/04/10 职场文书
2014年安全生产责任书
2014/07/22 职场文书
计生工作先进事迹
2014/08/15 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书