Heim >Web-Frontend >js-Tutorial >javascript读取xml_javascript技巧

javascript读取xml_javascript技巧

WBOY
WBOYOriginal
2016-05-16 19:24:371112Durchsuche

复制代码 代码如下:
/** 
 * 得到XML文件属性的集合对象 
 * @param xmlDoc XML对象 
 * @param name 属性名称 如: user 
 * @return 返回 Array 对象 
 * Example XML: 
 *  
 *  
 *    
 *      
 *       小猪 
 *     
 
 *     27 
 *   
 
 *    
 *      
 *       小霞 
 *     
 
 *     26 
 *   
 
 * 
 
 */ 
function getXMLArray(xmlDoc, name) { 
  var keys = name.split('.'); 
  var node = xmlDoc.documentElement;      // 得到根节点 
  var rtn = new Array(); 
  var n = 0; 

  for(var i=0; i    var childs = node.childNodes;       // 得到子节点 
    var key = keys[i]; 
 for(var k=0; 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    var childs = node.childNodes;       // 得到子节点 
    var key = keys[i]; 
 for(var k=0; 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("小猪27小霞26小章25"); 


var list = getXMLArray(xmlDoc, 'user'); 
for(var i=0; i  var obj = list[i]; 
  document.write(getValue(obj, 'name.cnname')); 
  document.write(getValue(obj, 'age')); 
  document.write('
'); 
}
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn