<type name='0'>
<type name='1'>1</type>
<type name='2'>
<type name='21'>21</type>
<type name='22'>22</type>
</type>
<type name='3'>
<type name='31'>31</type>
<type name='32'>
<type name='321'>321</type>
<type name='322'>322</type>
</type>
</type>
<type name='4'>
<type name='41'>41</type>
<type name='42'>
<type name='421'>421</type>
<type name='422'>422</type>
<type name='423'>
<type name='4231'>4231</type>
<type name='4232'>4232</type>
</type>
</type>
</type>
</type>
  我有如上XML文件,标签都是type,也不知道每一层有多深,现在就是想把它都全部递归出来,然后按照此格式生成动态树,生成树我用的是dtree。
  现在的问题是:
if(xmlDoc == null){
  xmlDoc = loadXML('MyXml.xml');
  var type = xmlDoc.documentElement; //根节点
  var title = type.getAttribute("name");
   tree = new dTree('tree');    //树形菜单

    tree.add(0,-1,title);      //树形菜单的顶级
  if(type.hasChildNodes()){    //根节点下的节点
      var types = type.childNodes;
       alert(types.length);    //有4个节点
  for(var i=0;i<types.length;i++){
   var  type2= types[i];
   tree.add(i+1,0,type2.getAttribute("name"),'');  //就在顶级菜单下面加上四个子菜单
   if(types2.hasChildNodes()){ //在判断第二节点下的节点,
      var type2s = types2.childNodes;
      for(var j=0;j<type2s.length;j++){  //这边循环就有问题了,老报 Stack Overflow错误
      var type3 = type2s[j];
      tree.add(j+1,i+1,'sds','');
  }
 }
}
}上面不知道有几层,所以不能一直用for循环,能不能有更好额递归方法,而不会出现Stack Overflow