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入门教程(5) js Screen屏幕对象
Jan 31 Javascript
JQuery 学习笔记 选择器之二
Jul 23 Javascript
登陆成功后自动计算秒数执行跳转
Jan 23 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
Aug 19 Javascript
Angular中响应式表单的三种更新值方法详析
Aug 22 Javascript
基于datepicker定义自己的angular时间组件的示例
Mar 14 Javascript
解决JavaScript layui 下拉框不显示的问题
Aug 14 Javascript
angularjs通过过滤器返回超链接的方法
Oct 26 Javascript
vue.draggable实现表格拖拽排序效果
Dec 01 Javascript
创建Vue项目以及引入Iview的方法示例
Dec 03 Javascript
Vue实现按钮级权限方案
Nov 21 Javascript
原生js实现碰撞检测
Mar 12 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 curl post 时出现的问题解决
2014/01/30 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
jquery photoFrame 图片边框美化显示插件
2010/06/28 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
jQuery鼠标悬停内容动画切换效果
2017/04/27 jQuery
微信小程序中吸底按钮适配iPhone X方案
2017/11/29 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
js实现简单放大镜效果
2020/03/07 Javascript
[01:35]2018年度CS GO最佳战队-完美盛典
2018/12/17 DOTA
Python学习笔记_数据排序方法
2014/05/22 Python
Python实现把utf-8格式的文件转换成gbk格式的文件
2015/01/22 Python
详解Python中DOM方法的动态性
2015/04/11 Python
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
代码实例讲解python3的编码问题
2019/07/08 Python
python opencv角点检测连线功能的实现代码
2020/11/24 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
行政管理毕业生自荐信
2014/02/24 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
公司周年庆活动方案
2014/08/25 职场文书
物业工程部经理岗位职责
2015/04/09 职场文书
村党组织公开承诺书
2015/04/30 职场文书
电力安全学习心得体会
2016/01/18 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
Python使用openpyxl批量处理数据
2021/06/23 Python