Mam funkcje xml2arr :
Witam. Mój problem jest wręcz elementarny.
Mam funkcje xml2arr :
Kod
<BR>function xml2arr(xmlNode){<BR> alert('jestem tu!'+"/n"+xmlNode.toString());<BR> var arrFromNode=new Array();<BR> try{if(xmlNode.hasAttributes){<BR> alert('atrybuty ma');<BR> arrFromNode[xmlNode.tagName]['attributes']=new Array();<BR> var nodeAttribiutes=xmlNode.attributes;<BR> var nodeAttribiutesNumber=nodeAttribiutes.lenght;<BR> for(var i=0;i<nodeAttribiutesNumber;i++){<BR> arrFromNode['attributes'][nodeAttribiutes[i].name]=nodeAttribiutes[i].nodeValue;<BR> alert("nodeAttribiutes["+i+"].value="+nodeAttribiutes[i].nodeValue);<BR> }<BR> }<BR> }catch(e){<BR> if(xmlNode.hasAttributes()){<BR> alert('atrybuty ma');<BR> arrFromNode[xmlNode.tagName]['attributes']=new Array();<BR> var nodeAttribiutes=xmlNode.attributes;<BR> var nodeAttribiutesNumber=nodeAttribiutes.lenght;<BR> for(var i=0;i<nodeAttribiutesNumber;i++){<BR> arrFromNode['attributes'][nodeAttribiutes[i].name]=nodeAttribiutes[i].value;<BR> alert("nodeAttribiutes["+i+"].value="+nodeAttribiutes[i].value);<BR> }<BR> }<BR> }<BR> if(xmlNode.hasChildNodes()){<BR> alert('ma childNodes');<BR> for(var i=0;i<xmlNode.childNodes.lenght;i++){<BR> alert(xmlNode.childNodes[i].name);<BR> if(xmlNode.childNodes[i].name=='#text'){<BR> arrFromNode[xmlNode.name]=xmlNode.childNodes[i].value;<BR> alert("xmlNode.childNodes["+i+"].nodeValue="+xmlNode.childNodes[i].value);<BR> }else{<BR> arrFromNode[xmlNode[i].name]=xml2arr(xmlNode[i]);<BR> }<BR> }<BR> }<BR> return arrFromNode;<BR> }<BR>
Używam tej funkcji w w sposób następujący :
Kod
<BR>advAJAX.setDefaultParameters({<BR> <BR> madro.OnInitialization();<BR>//jakies inne ustawienia<BR> onSuccess : function(obj) {<BR> madro.OnSuccess(xml2arr(obj.responseXML));<BR> }<BR> });<BR>
kod wykrywa istnienie atrybutów i dzieci, ale ich nierozpoznaje i w rezultacie zwrac
pusty obiekt.
Co jest źle?