Hace siglos que estoy intentando hacer una función recursiva para leer un XML pero no hay forma, os pido, si no es mucha molestia, que me echéis un cable para arreglar los puntos que consideréis que no estan bien en el proceso.
El último error al compilar que obtengo es que en la linea "obj[aNode.nodeName] = new Array(convertirXMLEnArray(aNode));" los tipos no coinciden.
Ya sé que hay multitud de clases que lo hacen esto pero se ha convertido en algo personal y lo tengo que lograr entender y codificar así que si me ayudais a salir del agujero con explicaciones convincentes os lo agradeceré eternamente
Aquí os posteo el código
function convertirXMLEnArray(datos:XML):Array {
var aNode:XMLNode;
var obj:Object;
var vector:Array = new Array();
aNode = datos.firstChild.firstChild;
for (aNode; aNode != null; aNode = aNode.nextSibling ) {
obj = new Object();
if (aNode.childNodes.length == 0) {
obj[aNode.parentNode.nodeName] = aNode.nodeValue;
if (aNode.nextSibling == null) {
vector.push(obj);
}
}
else {
obj[aNode.nodeName] = new Array(convertirXMLEnArray(aNode));
return(obj[aNode.nodeName]);
}
}
}