IE下JS读取xml文件示例代码


Posted in Javascript onAugust 05, 2013

使用JS读取xml文件,这里暂只考虑IE浏览器
step1 创建DOM对象

function createDom() { 
var xmlDoc = null; 
try { //IE 
if (typeof arguments.callee.activeXString != 'string') { 
var versions = [ 
"MSXML2.DOMDocument.6.0", 
"MSXML2.DOMDocument.3.0", 
"MSXML2.DOMDocument", 
"Microsoft.XMLDOM" 
]; 
var i, 
len; 
for (i = 0, len = versions.length; i < len; ++i) { 
try { 
new ActiveXObject(versions[i]); 
arguments.callee.activeXString = versions[i]; 
break; 
} catch (ex) { 
// ignore 
} 
} 
} 
xmlDoc = new ActiveXObject(arguments.callee.activeXString); 
} catch (ex) { // other 
xmlDoc = document.implementation.createDocument("", "", null); 
} 
return xmlDoc; 
}

IE8以前,XmlDom都是利用ActiveX对象实现的,在IE9之后,IE开始支持Level 2级DOM,(其他支持Level 2 DOM的浏览器包括Firefox, Opera, Chrome, and Safari等)
可以像下面一样创建XML DOM对象:
var xmldom = document.implementation.createDocument(namespaceUri, root, doctype);

step2 加载xml文件
function loadXML(file) { 
var dom = createDom(); 
if (dom == null) { 
alert("load filed!"); 
} 
try { 
dom.async = false; 
dom.load(file); 
} catch (ex) { 
alert("unsupport browser!"); 
} 
return dom; 
}

一个简单的例子:
var xmlDom = loadXML("config.xml");

IE下,可以调用selectNodes() 和selectSingleNode()方法,利用XPath,快速定位节点
Javascript 相关文章推荐
JavaScript的面向对象方法以及差别
Mar 31 Javascript
在JS数组特定索引处指定位置插入元素
Jul 27 Javascript
JavaScript中输出标签的方法
Aug 27 Javascript
简述JavaScript中正则表达式的使用方法
Jun 15 Javascript
JavaScript中var关键字的使用详解
Aug 14 Javascript
javascript之Array 数组对象详解
Jun 07 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
Dec 14 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
Oct 15 Javascript
Vue的路由动态重定向和导航守卫实例
Mar 17 Javascript
vue利用axios来完成数据的交互
Mar 23 Javascript
详解vue 不同环境配置不同的打包命令
Apr 07 Javascript
原生JS实现音乐播放器
Jan 26 Javascript
JavaScript的递归之递归与循环示例介绍
Aug 05 #Javascript
php与js的区别是什么
Aug 05 #Javascript
IE下写xml文件的两种方式(fso/saveAs)
Aug 05 #Javascript
js获取input标签的输入值实现代码
Aug 05 #Javascript
js实现页面转发功能示例代码
Aug 05 #Javascript
Jquery:ajax实现翻页无刷新功能代码
Aug 05 #Javascript
jquery js 重置表单 reset()具体实现代码
Aug 05 #Javascript
You might like
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
php中hashtable实现示例分享
2014/02/13 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
php开发工具有哪五款
2015/11/09 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
Jquery中使用setInterval和setTimeout的方法
2013/04/08 Javascript
在for循环中length值是否需要缓存
2015/07/27 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
jquery mobile移动端幻灯片滑动切换效果
2020/04/15 Javascript
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
javascript实现文本框标签验证的实例代码
2018/10/14 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
Python httplib,smtplib使用方法
2008/09/06 Python
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
Python多线程结合队列下载百度音乐的方法
2015/07/27 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
Python语言异常处理测试过程解析
2020/01/08 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
机关门卫制度
2014/02/01 职场文书
英文自荐信常用句子
2014/03/26 职场文书
超市促销活动总结
2014/07/01 职场文书
MySQL COUNT函数的使用与优化
2021/05/10 MySQL
SpringAop日志找不到方法的处理
2021/06/21 Java/Android
Django REST framework 限流功能的使用
2021/06/24 Python