javascript xml loop childNodes



i want to loop through an XML javascript childNodes dynamically using a for loop, i don't understand why this doesn't work? please take a look at my code - thanks!


XML structure:



<data>

<node>
<child>child1</child>
<child>child2</child>
</node>

<node>
<child>child1</child>
</node>

<node>
<child>child1</child>
<child>child2</child>
<child>child3</child>
</node>

</data>


Javascript:



<script>

if (window.XMLHttpRequest){
xhttp=new XMLHttpRequest();
}else{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET","data.xml",false);
xhttp.send();
xmlDoc= xhttp.responseXML;

var node = xmlDoc.getElementsByTagName("node");
var child = xmlDoc.getElementsByTagName("child");

document.write("len="+node.length+"<br>");

for ( var i = 0; i < node.length ; i++ ){

document.write(""+i+"=<br>");

for ( var i = 0; i < child.length ; i++ ){
document.write("childNodes= "+i+" - "+child[i].childNodes[0].nodeValue+"<br>");
}

document.write("<br><br>");
}

</script>


Outputs:



len=3
0=
childNodes= 0 - child1
childNodes= 1 - child2
childNodes= 2 - child1
childNodes= 3 - child1
childNodes= 4 - child2
childNodes= 5 - child3


Should Output:



len=3
0=
childNodes= 0 - child1
childNodes= 1 - child2
1=
childNodes= 0 - child1
3=
childNodes= 0 - child1
childNodes= 1 - child2
childNodes= 2 - child3

No comments:

Post a Comment