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 相关文章推荐
JavaScript 高级篇之闭包、模拟类,继承(五)
Apr 07 Javascript
js获取元素的外链样式的简单实现方法
Jun 06 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
Aug 02 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
Dec 19 Javascript
AngularJS 异步解决实现方法
Jun 12 Javascript
运用jQuery写的验证表单(实例讲解)
Jul 06 jQuery
JavaScript实现的浏览器下载文件的方法
Aug 09 Javascript
Vue实现本地购物车功能
Dec 05 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
Aug 12 Javascript
JS快速实现简单计算器
Apr 08 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
JavaScript代码实现微博批量取消关注功能
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对gzip文件或者字符串解压实例参考
2008/07/25 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
浅谈PHP中类和对象的相关函数
2017/04/26 PHP
js三种排序算法分享
2012/08/16 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
深入探讨javascript函数式编程
2015/10/11 Javascript
javascript的BOM
2016/05/03 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
学习python的几条建议分享
2013/02/10 Python
python比较2个xml内容的方法
2015/05/11 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
使用python获取(宜宾市地震信息)地震信息
2019/06/20 Python
python 中xpath爬虫实例详解
2019/08/26 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
2020/03/09 Python
Python用dilb提取照片上人脸的示例
2020/10/26 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
Data URI scheme详解和使用实例及图片base64编码实现方法
2014/05/08 HTML / CSS
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
DataReader和DataSet的异同
2014/12/31 面试题
公务员转正鉴定材料
2014/02/11 职场文书
愚人节活动策划方案
2014/03/11 职场文书
建筑专业毕业生求职信
2014/09/30 职场文书
2015毕业生实习工作总结
2014/12/12 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
2015年化验室工作总结
2015/04/23 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
结婚司仪主持词
2015/06/29 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书
如何获取numpy array前N个最大值
2021/05/14 Python
Python实现智慧校园自动评教全新版
2021/06/18 Python