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 相关文章推荐
Winform客户端向web地址传参接收参数的方法
May 17 Javascript
使用JavaScript获取URL中的参数(两种方法)
Nov 16 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
Jan 04 Javascript
Javascript Event(事件)的传播与冒泡
Jan 23 Javascript
jquery中封装函数传递当前元素的方法示例
May 05 jQuery
web前端页面生成exe可执行文件的方法
Feb 08 Javascript
node实现登录图片验证码的示例代码
Apr 20 Javascript
vue-cli2.9.3 详细教程
Apr 23 Javascript
Django+Vue跨域环境配置详解
Jul 06 Javascript
vue-router的钩子函数用法实例分析
Oct 26 Javascript
Vue实现图片轮播组件思路及实例解析
May 11 Javascript
vue2.0 解决抽取公用js的问题
Jul 31 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语法(4)
2006/10/09 PHP
用PHP生成静态HTML速度快类库
2007/03/18 PHP
php中支持多种编码的中文字符串截取函数!
2007/03/20 PHP
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
jquery checkbox,radio是否选中的判断代码
2010/03/20 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
2014/06/23 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
基于原生js淡入淡出函数封装(兼容IE)
2016/10/20 Javascript
js仿拉勾网首页穿墙广告效果
2017/03/08 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
浅谈Vue的加载顺序探讨
2017/10/25 Javascript
如何编写一个完整的Angular4 FormText 组件
2017/11/18 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
详解JavaScript之Array.reduce源码解读
2020/11/01 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
结合Python的SimpleHTTPServer源码来解析socket通信
2016/06/27 Python
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
tensorflow自定义激活函数实例
2020/02/04 Python
python实现logistic分类算法代码
2020/02/28 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
城市观光通行证:The Sightseeing Pass
2018/04/28 全球购物
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
工地宣传标语
2014/06/18 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
环保证明
2015/06/23 职场文书