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 相关文章推荐
点击文章内容处弹出页面代码
Oct 01 Javascript
javascript将数字转换整数金额大写的方法
Jan 27 Javascript
jQuery表单域选择器用法分析
Feb 10 Javascript
jQuery选择器源码解读(二):select方法
Mar 31 Javascript
javaScript实现滚动新闻的方法
Jul 30 Javascript
Javascript实现鼠标右键特色菜单
Aug 04 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
Aug 06 Javascript
基于element-ui组件手动实现单选和上传功能
Dec 06 Javascript
Vue源码解析之数据响应系统的使用
Apr 24 Javascript
微信小程序开发实现消息推送
Nov 18 Javascript
微信小程序实现折线图的示例代码
Jun 07 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
Apr 26 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
Zerg剧情介绍
2020/03/14 星际争霸
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
flash 得到自身url参数的代码
2009/11/15 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
单击和双击事件的冲突处理示例代码
2014/04/03 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
2015/09/12 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
javascript中replace使用方法总结
2017/03/01 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
2017/06/20 jQuery
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
分享一个常用的Python模拟登陆类
2015/03/29 Python
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
python使用matplotlib绘制折线图教程
2017/02/08 Python
Flask数据库迁移简单介绍
2017/10/24 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
Django实现基于类的分页功能
2019/10/31 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
基于keras输出中间层结果的2种实现方式
2020/01/24 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
Python 实现一个简单的web服务器
2021/01/03 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
仓库文员岗位职责
2014/04/06 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
春游踏青活动方案
2014/08/14 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
《倍数和因数》教学反思
2016/02/23 职场文书
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android