Buenas, tengo un problema con una función que me calcula la ruta de item Xml. Más que un problema es un cambio de requerimiento que se solucionará con cambiar una cosa pequeña pero que no he conseguido.

La función actual me calcula algo parecido a Padre.Hijo.Nieto....

Aquí podeis ver el Xml

Código XML :

<?xml version="1.0" encoding="UTF-8"?>
<Cuentas>
   <Cuenta id="cuenta1" label="[email protected]">
      <node label="INBOX" id="(28135)">
         <node label="Drafts"></node>
         <node label="Flex" id="(49)">
            <node label="Codigo"></node>
         </node>
      </node>
   </Cuenta>
   <Cuenta id="cuenta2" label="[email protected]">
      <node label="INBOX" id="(5)"></node>
      <node label="Drafts"></node>
   </Cuenta>
</Cuentas>


Aquí la función para calcular la ruta:

Código ActionScript :

public function getRuta():String { 
          var item:Object = newTree.selectedItem;  //igualamos una variable al item seleccionado 
           ruta=item.@label  //creamos una variable y le asignamos el valor del label 
           while (true){ 
               if (newTree.getParentItem(item) != null){  //si tiene padre "item" 
                   item=newTree.getParentItem(item) //igualamos "item" al padre 
                ruta = item.@label + "." + ruta;  //añadimos la label a la ruta 
               }else {break;} 
            }
      return ruta;
} 


El problema es que la función me devuelve casi lo que quiero. Como ejemplo os pongo lo que me devuelve para el item Flex. que sería -> "[email protected]". La cosa es que yo quiero que me devuelva "INBOX.Flex" sin el label del nodo.

Asigno así el dataprovider, esto no lo quiero cambiar.

Código ActionScript :

xmlTree = XML(event.result.toString()); //El Xml
var lista:XMLList= xmlTree.Cuenta;
newTree.dataProvider = lista;


Gracias a todos!