您的位置:首頁 > 網頁制作 > Javascript

javascript讀取xml

日期:2006-09-12 14:25:30 點擊: 來自: 作者:
以下是代碼片段:
/**
 * 得到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/>');
}
More..素材圖片 Picture Navigation
Javascript熱門 Class Hot
Javascript推薦 Class Commend
版權所有:中國網站資源 2005- 未經授權禁止復制或建立鏡像 This Site Tech:XHTML+DIV+CSS+Javascript
CopyRight ® 2005- www.szgxlt.com online services. all rights reserved. ICP06016627
Optimized to 1024x768 to Firefox,Netscape,Opera,MS-IE6+.
雷火电竞 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>