14. november 2008 - 21:48Der er
3 kommentarer og 1 løsning
Loope alle nodes
Jeg vil gerne loope alle nodes igennem, henter mit data fra en XML fil med AJAX. "var xmlDoc=http.responseXML.documentElement;", har lavet så den køre en "for" for at tjekke alle de nodes der er, MEN vil gerne finde alle subnodes, har lavet en fucntion uden for der skal lave endnu en "for" og hvis der er nodes i den osse skal den køre en gang til. Men den vil ikke rigtig kommer videre end med 2... så kunne godt tænke mig lidt hjælp, nu har jeg siddet i 5dage og prøvet mig frem på alle mulige måder...
(Normalt bruger jeg ikke innerHTML, og bruger det kun som test lige pt)
Min XML fil ser såden her ud
<top> <info> text <subinfo> <subsubinfo> text </subsubinfo> </subinfo> </info> <info> <subinfo> text </subinfo> </info> </top>
Første del af filen:
var x = xmlDoc.childNodes; for (i=0;i<x.length;i++) { //Display only element nodes if (x.item(i).nodeType==1) { xmlID.innerHTML += "<" + x.item(i).nodeName + ">"; var temp = x.item(i).childNodes if (temp.length > 0) { loop(i,temp); } } else if (x.item(i).nodeType==1) { xmlID.innerHTML += x.item(i).nodeValue; } }
######################## Min fucntion kaldet loop ########################
function loop(ii,nodes) { var xmlID=document.getElementById("navn"); x2 = nodes; for (i2=0;i2<x2.length;i2++) { if (x2.item(i2).nodeType==1) { xmlID.innerHTML += "<" + x2.item(i2).nodeName + ">"; var temp = x2.item(ii).childNodes if (temp.length > 0) { loop(i2,temp); } } else if (x2.item(i2).nodeType==3) { xmlID.innerHTML += x2.item(i2).nodeValue; } } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.