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 相关文章推荐
基于jQuery的图片剪切插件
Aug 03 Javascript
浅谈JavaScript中运算符的优先级
Jul 07 Javascript
js实现Select列表各项上移和下移的方法
Aug 14 Javascript
JavaScript中ES6字符串扩展方法
Aug 26 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
Feb 08 Javascript
Angularjs单选改为多选的开发过程及问题解析
Feb 17 Javascript
jquery仿微信聊天界面
May 06 jQuery
jquery中done和then的区别(详解)
Dec 19 jQuery
如何将HTML字符转换为DOM节点并动态添加到文档中详解
Aug 19 Javascript
JavaScript中的回调函数实例讲解
Jan 27 Javascript
jQuery列表动态增加和删除的实现方法
Nov 05 jQuery
Node快速切换版本、版本回退(降级)、版本更新(升级)
Jan 07 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
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
Dedecms V3.1 生成HTML速度的优化办法
2007/03/18 PHP
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
php隐藏实际地址的文件下载方法
2015/04/18 PHP
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
2017/09/22 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
2018/06/19 Javascript
jQuery实现的点击按钮改变样式功能示例
2018/07/21 jQuery
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
jquery简易手风琴插件的封装
2020/10/13 jQuery
[04:26]DOTA2上海特锦赛小组赛第二日 TOP10精彩集锦
2016/02/27 DOTA
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
Python基于百度AI的文字识别的示例
2018/04/21 Python
Python 日志logging模块用法简单示例
2019/10/18 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
员工工作表扬信范文
2014/01/13 职场文书
教师考察材料范文
2014/06/03 职场文书
实习生工作证明范本
2014/09/14 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
Python实现文字pdf转换图片pdf效果
2022/04/03 Python
golang使用map实现去除重复数组
2022/04/14 Golang