javascript读取xml


Posted in Javascript onNovember 04, 2006
/**  
 * 得到XML文件属性的集合对象  
 * @param xmlDoc XML对象  
 * @param name 属性名称 如: user  
 * @return 返回 Array 对象  
 * Example XML:  
 * <?xml version='1.0' encoding='utf-8'?>  
 * <ekuy>  
 *   <user>  
 *     <name>  
 *       <cnname>小猪</cnname>  
 *     </name>  
 *     <age>27</age>  
 *   </user>  
 *   <user>  
 *     <name>  
 *       <cnname>小霞</cnname>  
 *     </name>  
 *     <age>26</age>  
 *   </user>  
 * </ekuy>  
 */  
function getXMLArray(xmlDoc, name) {  
  var keys = name.split('.');  
  var node = xmlDoc.documentElement;      // 得到根节点  
  var rtn = new Array();  
  var n = 0;    for(var i=0; i<keys.length; i++) {  
    var childs = node.childNodes;       // 得到子节点  
    var key = keys[i];  
 for(var k=0; k<childs.length; k++) {        
   var child = childs[k];  
   if(child.nodeName == key) {     // 判断子节点是否符合  
  if(i == keys.length-1) {  
          rtn[n] = child;  
    n++;  
  } else {  
    node = child;  
    break;  
  }  
   }  
 }  
  }  

  return rtn;  
}  

/**  
 * 得到由getXMLArray函数得到对象中的值  
 * @param node 节点对象  
 * @param name   
 * @return 返回 String   
 */  
function getValue(node, name) {  
  var keys = name.split('.');  
  for(var i=0; i<keys.length; i++) {  
    var childs = node.childNodes;       // 得到子节点  
    var key = keys[i];  
 for(var k=0; k<childs.length; k++) {        
   var child = childs[k];  
   if(child.nodeName == key) {     // 判断子节点是否符合  
  if(child.childNodes.length == 1) {           
    // 如果没有字节点,返回值  
    return child.text;  
  } else {                                   
    // 还有子节点,继续分析  
    node = child;  
    break;  
  }  
   }  
 }  
  }  

  return "";  
}  

// 测试:  

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");  
xmlDoc.async = false;  
xmlDoc.loadXML("<?xml version='1.0' encoding='utf-8'?><ekuy><user><name><cnname>小猪</cnname></name><age>27</age></user><user><name><cnname>小霞</cnname></name><age>26</age></user><user><name><cnname>小章</cnname></name><age>25</age></user></ekuy>");  

var list = getXMLArray(xmlDoc, 'user');  
for(var i=0; i<list.length; i++) {  
  var obj = list[i];  
  document.write(getValue(obj, 'name.cnname'));  
  document.write(getValue(obj, 'age'));  
  document.write('<br\/>');  
}
Javascript 相关文章推荐
在html页面上拖放移动标签
Jan 08 Javascript
javascript最常用与实用的创建类的代码
Aug 12 Javascript
教您去掉ie网页加载进度条的方法
Dec 09 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
Dec 10 Javascript
JavaScript编程中实现对象封装特性的实例讲解
Jun 24 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
Jan 04 Javascript
js转换对象为xml
Feb 17 Javascript
Vue组件中的data必须是一个function的原因浅析
Sep 03 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
Jan 21 Javascript
vue车牌号校验和银行校验实战
Jan 23 Javascript
Node.js Windows Binary二进制文件安装方法
May 16 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
Feb 11 Javascript
用javascript操作xml
Nov 04 #Javascript
一个加密JavaScript的开源工具PACKER2.0.2
Nov 04 #Javascript
破除一些网站复制、右键限制
Nov 04 #Javascript
js计数器代码
Nov 04 #Javascript
Js中sort()方法的用法
Nov 04 #Javascript
取得传值的函数
Oct 27 #Javascript
使javascript也能包含文件
Oct 26 #Javascript
You might like
PHP 字符截取 解决中文的截取问题,不用mb系列
2009/09/29 PHP
PHP动态输出JavaScript代码实例
2015/02/12 PHP
动态为事件添加js代码示例
2009/02/15 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
图片img的src不变让浏览器重新加载实现方法
2013/03/29 Javascript
js 与 php 通过json数据进行通讯示例
2014/03/26 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
vue配置多代理服务接口地址操作
2020/09/08 Javascript
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
python实现telnet客户端的方法
2015/04/15 Python
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
python hook监听事件详解
2018/10/25 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
wxPython多个窗口的基本结构
2019/11/19 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
python lambda的使用详解
2021/02/26 Python
十佳文明家庭事迹
2014/05/25 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
授权委托书
2015/01/28 职场文书
抢劫罪辩护词
2015/05/21 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
Python上下文管理器Content Manager
2021/06/26 Python
Python pandas求方差和标准差的方法实例
2021/08/04 Python