Comunidad de diseño web y desarrollo en internet online

Añadir NODES a un xml desde flash

Citar            
MensajeEscrito el 07 Feb 2008 06:09 pm
Buenas gente.

Tengo un problema con un código muy sencillo. Lo que quiero conseguir es, a modo de prueba, cargar en un campo de texto dinámico una lista de nombres dada por un xml, y tengo otro campo de texto en el cual introduzco un nombre nuevo y quiero que se añada al xml original.
Para muestra, un botón:

Este es el xml original:

Código :

<listado>
   <nombre>Juan</nombre>
   <nombre>Alberto</nombre>
</listado>


Y este el codigo del flash:

Código :

function cargarXml() {//Carga del XML
   var listado:XML = new XML();
   listado.ignoreWhite = true;
   listado.load("listado.xml");
   listado.onLoad = function(exito) {
      if (exito) {
         lista.text = "";
         for (i=0; i<this.firstChild.childNodes.length; i++) {
            lista.text += this.firstChild.childNodes[i].firstChild.nodeValue;
         }
      } else {
         lista.text = "No disponemos de ningun listado.";
      }
   };
}
anadirBtn.onPress = function() {//Boton de añadir
   if (nombre.text.length>1) {
      var listado:XML = new XML();
      listado.ignoreWhite = true;
      listado.load("listado.xml");
      listado.onLoad = function(exito) {
         var nuevoCampo:XML = new XML("<nombre>"+nombre.text+"</nombre>\n");
         var insertaCampo:XMLNode = this.firstChild.childNodes.lastChild;
         listado.insertBefore(nuevoCampo,insertaCampo);
         var envio = listado;
         envio.contentType = "text/xml";
         envio.send("listado.xml");
         trace(envio);
      };
   }
};
borrar1Btn.onPress = function() {//Boton de borrar nombre
   nombre.text = "";
};
cargarBtn.onPress = function() {//Boton de cargar lista
   cargarXml();
};
borrar2Btn.onPress = function() {//Boton de borrar lista
   lista.text = "";
};


La explicación es muy sencilla, tengo 2 campos de texto, uno de introducción de texto y el otro dinámico. Luego tengo cuatro botones, dos para campo de texto. mirando el codigo:

"AnadirBtn" me añade el nombre del campo de texto "nombre" al xml.
"borrar1Btn" borra el nombre del campo de texto "nombre".
"cargarBtn" carga los nombres del xml en el cuadro de texto "lista".
"borrar2Btn" borra los nombres del campo de texto "lista".

No voy a preguntar como grabar los datos en el xml, ya que tendría que meterme con php y eso lo veo difícil....
De momento lo único que querría, es que en la ventana de salida me pusiera el nombre nuevo que he introducido dentro del nodo principal "listado", ya que si lo ejecuto así (suponiendo que haya introducido "nuevoNombre" en el campo de texto "nombre")lo que consigo es esto:

Código :

<listado>
   <nombre>Juan</nombre>
   <nombre>Alberto</nombre>
</listado>
<nombre>nuevoNombre</nombre>


y lo que quiero conseguir es esto:

Código :

<listado>
   <nombre>Juan</nombre>
   <nombre>Alberto</nombre>
   <nombre>nuevoNombre</nombre>
</listado>


Me estoy liando (creo) con la parte de

Código :

var nuevoCampo:XML = new XML("<nombre>"+nombre.text+"</nombre>\n");
         var insertaCampo:XMLNode = this.firstChild.childNodes.lastChild;
         listado.insertBefore(nuevoCampo,insertaCampo);


y no se como solucionarlo, la verdad es que me trae un poco loco porque llevo dias dandole vueltas y no consigo entender que he hecho mal...
Os agradeceria mucho la ayuda.

Un saludo.

Por elmaxloko

7 de clabLevel



Genero:Masculino  

Valencia - España

firefox
Citar            
MensajeEscrito el 18 Mar 2009 10:04 pm
Ando con un problema similar al que escrbiste alguna vez con XML y Flash. Te dejo mi MSN: [email protected]. Yo te puedo dar una mano también. Gracias.

Por Mario Mey

40 de clabLevel



 

Castelar, Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.