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 解析url的search方法
Feb 09 Javascript
json的前台操作和后台操作实现代码
Jan 20 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
Jun 28 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
Nov 21 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
Apr 23 Javascript
10个JavaScript中易犯小错误
Feb 14 Javascript
jQuery 操作input中radio的技巧
Jul 18 Javascript
8 行 Node.js 代码实现代理服务器
Dec 05 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
Dec 06 Javascript
Angular2数据绑定详解
Apr 18 Javascript
angular select 默认值设置方法
Jun 23 Javascript
JS脚本实现网页自动秒杀点击
Jan 11 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
解析yii数据库的增删查改
2013/06/20 PHP
浅谈discuz密码加密的方式
2014/05/22 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
用jquery生成二级菜单的实例代码
2013/06/24 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
2014/06/07 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错
2018/11/06 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
2020/05/12 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
小程序点餐界面添加购物车左右摆动动画
2020/09/23 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
Python实现控制台进度条功能
2016/01/04 Python
全面分析Python的优点和缺点
2018/02/07 Python
python 不以科学计数法输出的方法
2018/07/16 Python
python3获取url文件大小示例代码
2019/09/18 Python
Python中的None与 NULL(即空字符)的区别详解
2020/09/24 Python
浅谈Python xlwings 读取Excel文件的正确姿势
2021/02/26 Python
CSS3 边框效果
2019/11/04 HTML / CSS
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
中国医药集团国药在线:国药网
2017/02/06 全球购物
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
初中政治教学反思
2014/01/17 职场文书
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技