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 相关文章推荐
更换select下拉菜单背景样式的实现代码
Dec 20 Javascript
Sea.JS知识总结
May 05 Javascript
jquery uploadify隐藏上传进度的实现方法
Feb 06 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
Aug 09 Javascript
javascript中关于类型判断的一些疑惑小结
Oct 14 Javascript
JS实现数组去重及数组内对象去重功能示例
Feb 02 Javascript
实用Javascript调试技巧分享(小结)
Jun 18 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
Jul 19 Javascript
node实现爬虫的几种简易方式
Aug 22 Javascript
在layui.use 中自定义 function 的正确方法
Sep 16 Javascript
js判断在哪个浏览器打开项目的方法
Jan 21 Javascript
jQuery+ajax实现文件上传功能
Dec 22 jQuery
用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 伪静态之IIS篇
2014/06/02 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
基于Swoole实现PHP与websocket聊天室
2016/08/03 PHP
基于jquery的loading效果实现代码
2010/11/05 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
JS实现定时页面弹出类似QQ新闻的提示框
2013/11/07 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
JQuery中DOM加载与事件执行实例分析
2015/06/13 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
Bootstrap Chart组件使用教程
2016/04/28 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
利用js编写网页进度条效果
2017/10/08 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
vue用elementui写form表单时,在label里添加空格操作
2020/08/13 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
2021/02/10 Javascript
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
[59:42]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
简单实现python爬虫功能
2015/12/31 Python
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
幼儿园实习生辞职信
2014/01/20 职场文书
销售人员获奖感言
2014/02/05 职场文书
大专学生求职自荐信
2014/07/06 职场文书
创优争先心得体会
2014/09/11 职场文书
党课主持词大全
2015/06/30 职场文书
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书
python入门之算法学习
2021/04/22 Python
MySQL分库分表详情
2021/09/25 MySQL