XML对象怎么循环提取里面的数据,给个例子

XML对象如何循环提取里面的数据,给个例子
我现在有个XML对象格式如下:
 
XML code

  <xml>
    <node id='0' name='根节点'>
       <node id='0001' parentNode='0' name='节点一'>
         <node id='0001001' parentNode='0001' name='节点一(1)' />
       </node>
       <node id='0002' parentNode='0' name='节点二' />
    </node>
  </xml>



1.我想将上面的xml数据通过循环一条一条将数据读出,如何写谢谢。。
2.如果我只知道id='0001'如何通过这个得到这个节点的子节点。非常感谢。。

补充一点,,ID代码是唯一的

------解决方案--------------------
1、你的循环读出是什么意思?我看你XML里面有parentNode,我以前也做过,用的是xslt转的,将一个树形的XML转成平级的XML,用普通的递归循环也能打成平级;
2、xml..node.(@id == '0001')[0]不就是id为0001的结点吗?然后取children不就是子节点吗?
------解决方案--------------------
XML code

private function findChecked(xmllist:XMLList):void{
    for(var i:int=0;i<xmllist.length();i++)
    {
        if(xmllist[i].@id=="0001")
       {
        Alert.show(xmllist[i].@id);
       }
      if(xmllist[i].hasComplexContent()){
        findChecked(xmllist[i].children());
      }
    }
}

------解决方案--------------------
你的数据结构是树型嘛。
如果层数固定,又不是很多,可以写死几次循环。
但个人不推荐这么做,毕竟写个递归又不难,这样很灵活,以后层数变得话,对这个方法没影响。

递归的大概思路是这样:
你现在不同的只是形参的类型换一下,里面的child.children 换一下,就可以了
JScript code
function walkNodes(data:Array):void
            {

                for each (var child:Object in data)
                {
                    if(child.children != null) {
                        // 如果还有孩子,递归调用遍历孩子的所有节点
                        walkNodes(child.children);
                    } else {
                        // 当前层的叶子节点
                        trace(child);
                    }

                }
            }