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 相关文章推荐
js中字符替换函数String.replace()使用技巧
Aug 14 Javascript
使用jQuery实现更改默认alert框体
Apr 13 Javascript
JS实现的倒计时效果实例(2则实例)
Dec 23 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
Jul 09 Javascript
js生成随机颜色方法代码分享(三种)
Dec 29 Javascript
JS中如何实现点击a标签返回页面顶部的问题
Jan 19 Javascript
用jQuery实现圆点图片轮播效果
Mar 19 Javascript
vue自定义过滤器创建和使用方法详解
Nov 06 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
Aug 28 Javascript
Vue实现一个无限加载列表功能
Nov 13 Javascript
js实现图片推拉门效果代码实例
May 18 Javascript
JavaScript直接调用函数与call调用的区别实例分析
May 22 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上传图片、删除图片实现代码
2010/05/12 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
2013/06/17 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
在网页中控制wmplayer播放器
2006/07/01 Javascript
javascript学习笔记(十四) window对象使用介绍
2012/06/20 Javascript
js二级地域选择的实现方法
2013/06/17 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
Vue.js动态组件解析
2016/09/09 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
JavaScript下拉菜单功能实例代码
2017/03/01 Javascript
react系列从零开始_简单谈谈react
2017/07/06 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
2017/12/22 Javascript
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
简单谈谈javascript高级特性
2019/09/04 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
[03:48]显微镜下的DOTA2第四期——TP动作
2014/06/20 DOTA
[01:04:49]KG vs LGD 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
python logging 日志轮转文件不删除问题的解决方法
2016/08/02 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
python中with用法讲解
2020/02/07 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
.net笔试题
2014/03/03 面试题
什么是View State?
2013/01/27 面试题
见习期自我鉴定
2014/01/31 职场文书
会计学生自我鉴定
2014/02/06 职场文书
带病坚持工作事迹
2014/05/03 职场文书
学校教学管理制度
2015/08/06 职场文书
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS