Cuando hacemos una consulta en un XML nos devuelve un XMLList con los resultados.
Sin embargo, ese listado no está desvinculado del xml original, sino que son referencias al mismo, es decir, que si modificamos los elementos de ese XMLList y luego trazamos el XML del que ha salido, veremos el resultado de dicha modificación.
// XML inicial var miXml:XML = <escena> <obj>Algo</obj> <obj>Algo</obj> <obj>Algo</obj> <contenedor> <obj>Algo</obj> <obj>Algo</obj> </contenedor> </escena> // Listado de los nodos "obj" incluidos los anidados var objetos:XMLList = miXml..obj; // Recorro el listado sustituyendo su valor por otro. // Modifico el XMLList, pero son referencias al XML de origen. for each(var obj:XML in objetos){ obj.replace(0, "Otra cosa"); } // Trazo el XML original. Se han modificado los valores. trace(miXml); /* <escena> <obj>Otra cosa</obj> <obj>Otra cosa</obj> <obj>Otra cosa</obj> <contenedor> <obj>Otra cosa</obj> <obj>Otra cosa</obj> </contenedor> </escena> */