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 相关文章推荐
Google排名中的10个最著名的 JavaScript库
Apr 27 Javascript
JSQL SQLProxy 的 php 版本代码
May 05 Javascript
裁剪字符串trim()自定义改进版
Apr 10 Javascript
在myeclipse中如何加入jquery代码提示功能
Jun 03 Javascript
node.js中的fs.ftruncate方法使用说明
Dec 15 Javascript
详解Bootstrap插件
Apr 25 Javascript
js实现的下拉框二级联动效果
Apr 30 Javascript
JS操作input标签属性checkbox全选的实现代码
Mar 02 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
Mar 28 Javascript
JS+php后台实现文件上传功能详解
Mar 02 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
Aug 09 Javascript
Element Collapse 折叠面板的使用方法
Jul 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
无数据库的详细域名查询程序PHP版(1)
2006/10/09 PHP
PHP的分页功能
2007/03/21 PHP
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
使用laravel和ECharts实现折线图效果的例子
2019/10/09 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
javascript获取flash版本号的方法
2014/11/20 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
2016/06/03 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
package.json配置文件构成详解
2019/08/27 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
2020/09/16 Javascript
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
python编写的最短路径算法
2015/03/25 Python
详细介绍Ruby中的正则表达式
2015/04/10 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
python爬虫使用cookie登录详解
2017/12/27 Python
python监控nginx端口和进程状态
2019/09/06 Python
python队列原理及实现方法示例
2019/11/27 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
python -v 报错问题的解决方法
2020/09/15 Python
Python爬虫开发与项目实战
2020/12/16 Python
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
医药工作岗位求职信分享
2013/12/31 职场文书
将相和教学反思
2014/02/04 职场文书
另类冲刺标语
2014/06/24 职场文书
业绩倒数第一的检讨书
2014/09/24 职场文书
布达拉宫导游词
2015/02/02 职场文书
员工加薪申请报告
2015/05/15 职场文书
小学生纪律委员竞选稿
2015/11/19 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
详解MindSpore自定义模型损失函数
2021/06/30 Python
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python