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 相关文章推荐
检测是否已安装 .NET Framework 3.5的js脚本
Feb 14 Javascript
js操作滚动条事件实例
Jan 29 Javascript
jQuery给元素添加样式的方法详解
Dec 30 Javascript
jQuery插件实现适用于移动端的地址选择器
Feb 18 Javascript
JavaScript编程中实现对象封装特性的实例讲解
Jun 24 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
Sep 14 Javascript
自学实现angularjs依赖注入
Dec 20 Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
Apr 25 jQuery
微信小程序实现基于三元运算验证手机号/姓名功能示例
Jan 19 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
Sep 02 Javascript
js实现漂亮的星空背景
Nov 01 Javascript
vue 中使用print.js导出pdf操作
Nov 13 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
什么是调频(FM)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
2014/10/20 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
PHP中的switch语句的用法实例详解
2015/10/21 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
2007/03/27 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
jquery实现邮箱自动补全功能示例分享
2014/02/17 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
2014/04/07 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
jQuery+html5实现div弹出层并遮罩背景
2015/04/15 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
JavaScript之class继承_动力节点Java学院整理
2017/07/03 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
微信小程序中上传图片并进行压缩的实现代码
2018/08/28 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
Vuex新手的理解与使用详解
2019/05/31 Javascript
浅谈layer弹出层按钮颜色修改方法
2019/09/11 Javascript
Django框架中方法的访问和查找
2015/07/15 Python
wxpython绘制音频效果
2019/11/18 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
python实现无边框进度条的实例代码
2020/12/30 Python
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
小学毕业感言150字
2014/02/05 职场文书
交通工程专业推荐信
2014/09/06 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
防卫过当辩护词
2015/05/21 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
python实现MD5进行文件去重的示例代码
2021/07/09 Python
手写实现JS中的new
2021/11/07 Javascript