javascript读取xml

时间:2024-04-23 09:30:13 

/** 
 * 得到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读取xml
0
投稿

猜你喜欢

  • Python3操作MongoDB增册改查等方法详解

    2021-09-20 05:13:49
  • 一个ASPJPEG组件的asp类 CLASS

    2008-03-11 12:22:00
  • 用SQL语句解决mysql导入大数据文件的问题

    2024-01-13 05:52:23
  • python 中的9个实用技巧,助你提高开发效率

    2021-05-01 08:26:25
  • Linux下安装mysql-5.6.4 的图文教程

    2024-01-24 16:03:47
  • Vue中使用eslint和editorconfig方式

    2024-06-05 10:03:46
  • python采用requests库模拟登录和抓取数据的简单示例

    2022-09-21 22:46:55
  • 浅谈图像处理中掩膜(mask)的意义

    2021-03-17 01:48:50
  • ASP.NET 2.0中的数据操作之九:跨页面的主/从报表

    2023-07-19 20:28:42
  • Python找出最小的K个数实例代码

    2022-09-13 12:21:10
  • python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法

    2021-01-03 05:25:29
  • Python约瑟夫生者死者小游戏实例讲解

    2023-02-12 02:14:25
  • python实现将元祖转换成数组的方法

    2022-11-22 02:40:32
  • 很多人都是用下面的js刷新站IP和PV

    2024-04-23 09:23:08
  • python制作简单计算器功能

    2022-08-06 20:57:16
  • Python区块链Creating Miners教程

    2021-03-25 11:39:27
  • Git在Windows中安装与使用教程

    2023-11-01 08:47:55
  • Golang中的sync.WaitGroup用法实例

    2023-08-31 03:57:28
  • sql中设置联合主键的具体方法

    2024-01-13 06:19:10
  • 参数传递解决window.open的session变量丢失

    2007-10-22 17:40:00
  • asp之家 网络编程 m.aspxhome.com