用js递归xml文件遇到的问题!!!!
<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