如何知道XML列表是否有孩子? 我的下面的代码使用硬代码表明我想运行XML的子代。 但如果我有很多孩子的话,我不想写下每个孩子()的写作。
private function dataLevel():void {
for (var j:Number=0; j<xmlList.length(); j++) {
createBranch();
for (var k:int = 0; k<xmlList[j].children().length(); k++) {
createBranch();
}
for (var l:int = 0; l<xmlList[j].children().children().length(); l++) {
createBranch();
}
}
}
答案 0 :(得分:2)
createBranch
做什么?这不取决于孩子的名字吗?从给定的代码来看,你似乎只想和孩子(或孙子)一样多次调用createBranch
- 虽然我不确定xmlList[j].children().children().length()
会返回什么。如果您只想获得所有子孙的列表,请使用descendants()方法。
如果您想按层次顺序浏览子项,请编写递归方法。
function traverseChildren(node:XML):void
{
//calling createBranch here means one call per each xml children
createBranch();
var list:XMLList = node.children();
for each(var child:XML in list)
{
if(child.nodeKind() == "element")
traverseChildren(child);
//if you wanna call createBranch for each attribute and text node
//and comments and processing instructions, call it here instead
}
}