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 相关文章推荐
破除一些网站复制、右键限制
Nov 04 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
Nov 16 Javascript
js jquery获取随机生成id的服务器控件的三种方法
Jul 11 Javascript
jquery清空表单数据示例分享
Feb 13 Javascript
谈谈impress.js初步理解
Sep 09 Javascript
JS实现简单的二维矩阵乘积运算
Jan 26 Javascript
Javascript 制作图形验证码实例详解
Dec 22 Javascript
代码详解Vuejs响应式原理
Dec 20 Javascript
解决jquery有正确返回值但不执行success函数的问题
Aug 20 jQuery
Ajax请求时无法重定向的问题解决代码详解
Jun 21 Javascript
BootstrapValidator实现表单验证功能
Nov 08 Javascript
JS继承实现方法及优缺点详解
Sep 02 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
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
php数组排序usort、uksort与sort函数用法
2014/11/17 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
限制文本字节数js代码
2007/03/06 Javascript
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
Jquery中Event对象属性小结
2015/02/27 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
2017/09/15 Javascript
使用clipboard.js实现复制功能的示例代码
2017/10/16 Javascript
jQuery实现所有验证通过方可提交的表单验证
2017/11/21 jQuery
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
python使用cookielib库示例分享
2014/03/03 Python
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
Python分割指定页数的pdf文件方法
2018/10/26 Python
基于Python解密仿射密码
2019/10/21 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
Python装饰器结合递归原理解析
2020/07/02 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
定义css设备类型-Media Queries图表简介及使用方法
2013/01/21 HTML / CSS
某个公司的Java笔面试题
2016/03/11 面试题
档案接收函范文
2014/01/10 职场文书
日化店促销方案
2014/03/26 职场文书
高一新生军训方案
2014/05/12 职场文书
教师党员个人剖析材料
2014/09/29 职场文书
领导班子群众路线与四风问题对照检查材料思想汇报
2014/10/11 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
财务统计员岗位职责
2015/04/14 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
2016年大学迎新晚会工作总结
2015/10/15 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书
Android实现图片九宫格
2022/06/28 Java/Android