javascript读取xml

2016-02-19 11:43 11 1 收藏

下面图老师小编跟大家分享javascript读取xml,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - Web开发 】

代码如下:
/** 
 * 得到XML文件属性的集合对象 
 * @param xmlDoc XML对象 
 * @param name 属性名称 如: user 
 * @return 返回 Array 对象 
 * Example XML: 
 * ?xml version='1.0' encoding='utf-8'? 
 * ekuy 
 *   user 
 *     name 
 *       cnname小猪/cnname 
 *     /name 
 *     age27/age 
 *   /user 
 *   user 
 *     name 
 *       cnname小霞/cnname 
 *     /name 
 *     age26/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; ikeys.length; i++) { 
    var childs = node.childNodes;       // 得到子节点 
    var key = keys[i]; 
 for(var k=0; kchilds.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; ikeys.length; i++) { 
    var childs = node.childNodes;       // 得到子节点 
    var key = keys[i]; 
 for(var k=0; kchilds.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'?ekuyusernamecnname小猪/cnname/nameage27/age/userusernamecnname小霞/cnname/nameage26/age/userusernamecnname小章/cnname/nameage25/age/user/ekuy"); 


var list = getXMLArray(xmlDoc, 'user'); 
for(var i=0; ilist.length; i++) { 
  var obj = list[i]; 
  document.write(getValue(obj, 'name.cnname')); 
  document.write(getValue(obj, 'age')); 
  document.write('br/'); 
}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

来源:http://www.tulaoshi.com/n/20160219/1598354.html

延伸阅读
标签: Web开发
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head     title龙的传人--Xml_javascript分页/title     /head body onload="getxmlDoc()" script langua...
标签: Web开发
我的xml文件Login.xml如下. ?xml version="1.0" encoding="utf-8" ? Login     Character         C Text="热血" Value="0"/C         C Text="弱气" Value="1"/C         C Text="激情" Value="2"/C  ...
        对于XML,想必各位都比较了解,我也就不用费笔墨来描述它是什么了,我想在未来的Web开发中XML一定会大放异彩,XML是可扩展标记语言,使用它企业可以制定一套自己的数据格式,数据按照这种格式在网络中传输然后再通过XSLT将数据转换成用户期望的样子表示出来,这样便轻易的解决了数据格式不兼容的问...
标签: Web开发
根据客户的需要做一个产品的分类的导航菜单,以前使用ASP递归读取的。速度慢,而且消耗大量服务器资源。干脆改成AJAX+XML。共享出来和大家交流。希望各位能帮忙改进。 产品分类的XML文件 代码如下: //id为自身id,pid为父级分类ID  ?xml version="1.0" encoding="UTF-8" ?  Proot      ...
标签: Web开发
一个客户提供一个股价的信息,要求放在页面上,显示一些数据,需要从远程获取xml,然后解析写在网页上,开始不会觉得很难,其实蛮简单的,先用javascript写了一个: 以下为引用的内容: script language=javascript var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.load("http://****.com/scripts/***...

经验教程

943

收藏

27

精华推荐

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部