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 相关文章推荐
取得窗口大小 兼容所有浏览器的js代码
Aug 09 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
May 29 Javascript
搭建pomelo 开发环境
Jun 24 Javascript
使用jQuery将多条数据插入模态框的实现代码
Oct 08 Javascript
jquery操作复选框checkbox的方法汇总
Feb 05 Javascript
JS限制文本框只能输入数字和字母方法
Feb 28 Javascript
深入探讨JavaScript String对象
Mar 09 Javascript
使用AngularJS创建自定义的过滤器的方法
Jun 18 Javascript
Bootstrap每天必学之前端开发框架
Nov 19 Javascript
详解Node 定时器
Feb 26 Javascript
layui操作列按钮个数和文字颜色的判断实例
Sep 11 Javascript
关于element的表单组件整理笔记
Feb 05 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 按位与或 (^ 、&amp;)
2013/06/21 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
2014/11/18 PHP
php实现批量修改文件名称的方法
2016/07/23 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
2016/10/25 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
2012/12/25 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
深入理解Angular4中的依赖注入
2017/06/07 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
[51:44]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第二场
2018/04/04 DOTA
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python的Template使用指南
2014/09/11 Python
python selenium 对浏览器标签页进行关闭和切换的方法
2018/05/21 Python
Python 函数返回值的示例代码
2019/03/11 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
python适合做数据挖掘吗
2020/06/16 Python
Python eval函数介绍及用法
2020/11/09 Python
css3中transition属性详解
2014/09/02 HTML / CSS
快速实现一个简单的canvas迷宫游戏的示例
2018/07/04 HTML / CSS
美国第一香水网站:Perfume.com
2017/01/23 全球购物
华为c/c++笔试题
2016/01/25 面试题
教师个人的自我评价分享
2014/01/02 职场文书
化妆品店促销方案
2014/02/24 职场文书
合作协议书范本
2014/04/17 职场文书
信仰心得体会
2014/09/05 职场文书
五好家庭申报材料
2014/12/20 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
企业管理不到位检讨书
2019/06/27 职场文书
SpringBoot集成Redis的思路详解
2021/10/16 Redis