Loop problem in xml childnodes

hi guys,
I am new in xml-flash. I really quite confuse with the childnodes in Flash. To have a better look at my problem, here is my XML file:

<threeD>
<intro>
<title>Introduction of 3D Animation</title>
<body>3D models are created by manipulating polygon meshes and molding them into objects, characters and scenes. 3D art is used in everything from print ads, Web sites, television, movies, video games and beyond.</body>
<keyword>introduction,3D animation </keyword>
</intro>

&lt;intro&gt;
    &lt;title&gt;Modelling&lt;/title&gt;
    &lt;body&gt;[SIZE=2]**3D modeling is the process of developing a mathematical representation of any three-dimensional surface of object (either inanimate or living) via specialized software. ** [/SIZE]&lt;/body&gt;

<picture caption=“modelling” url=“model.jpg”> </picture>
<keyword>introduction,3D animation, modelling </keyword>
</intro>
</threeD>

Ok the problem is how should i write the loop that will automatically display according to how many childnodes are within the tag <intro> based on the XML file. So far I only manage to write a loop that will display according to how many <intro> childnodes but if i add a new childnodes inside the <intro> tag , for example <picture> in the second part of <intro>, the output came out as undefined.
So how to write a loop that will display the output according to how many <intro> and how many childnodes within the <into>.

ok here is the action script:

threeD_XML.onLoad = function(success) {
if (success) {
var threeD:Array = threeD_XML.firstChild.childNodes;
for(i=0;i<threeD.length;i++){
output += “<b>”;
output += threeD*.childNodes[0].firstChild.nodeValue;
output += "</b>
";
output += threeD*.childNodes[1].firstChild.nodeValue;
output += "<i>
<b> Keyword: ";
output += threeD*.childNodes[2].firstChild.nodeValue;
output += "</i>

</b>";

        }