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弹出窗口居前显示的实现方法
Jul 10 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
Nov 25 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
Jun 26 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
Aug 08 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
Sep 05 Javascript
JS实现的适合做faq或menu滑动效果示例
Nov 17 Javascript
vue-cli的eslint相关用法
Sep 29 Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
Oct 26 Javascript
Vuex 使用及简单实例(计数器)
Aug 29 Javascript
浅谈vue 单文件探索
Sep 05 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
May 13 Javascript
js实现无缝轮播图特效
May 09 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中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
查看源码的工具 学习jQuery源码不错的工具
2011/12/26 Javascript
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
js读取cookie方法总结
2014/10/31 Javascript
JS+CSS实现滑动切换tab菜单效果
2015/08/25 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
ElementUI 修改默认样式的几种办法(小结)
2020/07/29 Javascript
Vue $attrs &amp; inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
python 域名分析工具实现代码
2009/07/15 Python
python 控制语句
2011/11/03 Python
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
html5指南-1.html5全局属性(html5 global attributes)深入理解
2013/01/07 HTML / CSS
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
英文求职信结束语大全
2013/10/26 职场文书
结婚典礼证婚词
2014/01/08 职场文书
面试后感谢信怎么写
2014/02/01 职场文书
《菜园里》教学反思
2014/04/17 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python