Foros del Web » Creando para Internet » Flash y Actionscript »

Script para leer cualquier XML en Flash

Estas en el tema de Script para leer cualquier XML en Flash en el foro de Flash y Actionscript en Foros del Web. Saludos, estaba buscando la manera de poder leer XML complejos y me encontre con esta excelente solución de gersonm y Zguillez. http://www.cristalab.com/tips/script...flash-c28433l/ donde crean una ...
  #1 (permalink)  
Antiguo 02/04/2010, 17:30
 
Fecha de Ingreso: julio-2003
Mensajes: 100
Antigüedad: 20 años, 9 meses
Puntos: 0
Script para leer cualquier XML en Flash

Saludos, estaba buscando la manera de poder leer XML complejos y me encontre con esta excelente solución de gersonm y Zguillez. http://www.cristalab.com/tips/script...flash-c28433l/

donde crean una clase que puede leer cualquier xml mientras no los "hermanos" no tengan el mismo nombre

asi el xml de prueba es
Código:
<?xml version="1.0" encoding="iso-8859-1"?>
<datos>
   <productos>
      <p_0 nombre="Esto%20es%20un%20producto" descripcion="producto%20producto%20producto%20producto%20producto%20producto%20">
         <item_0 nombre="Servicios%20generales" img="img/sp_1.png" >
            <referencia_0 nombre="1-18" descripcion="d118-d118-d118-d118-d118" material="0-1-4-6" color="1-3-5-7" tallas="1-2-3" fotos="r0_peq.jpg*r0.jpg" />
            <referencia_1 nombre="1-19" descripcion="d119-d119-d119-d119-d119" material="0-1-4-6" color="1-3-5-7" tallas="1-2-3" fotos="r0_peq.jpg*r0.jpg" />
            <referencia_2 nombre="1-20" descripcion="d120-d120-d120-d120-d120" material="0-1-4-6" color="1-3-5-7" tallas="1-2-3" fotos="r0_peq.jpg*r0.jpg" />
         </item_0>
         <item_1 nombre="Peces%raros" img="img/sp_0.png" >
            <referencia_0 nombre="1-18" descripcion="d118-d118-d118-d118-d118" material="0-1-4-6" color="1-3-5-7" tallas="1-2-3" fotos="r0_peq.jpg*r0.jpg" />
         </item_1>
      </p_0>
      <p_1 nombre="Esto%20es%20otro%20producto" descripcion="Manteles,%20Carpetas,%20Servilletas,%20toallas%20cortes%C3%ADa,%20individuales,%20portavasos,%20cojines,%20vaminos,%20cubrecamas,%20tapetes%20en%20lino%20y%20telar." >
      </p_1>
   </productos>
   <idioma nombre="es">
      <detalles_subproducto ref="Referencia" />
   </idioma>
</datos>
y la clase para leerlo es

Código PHP:
class objectXML {
   private var 
docXML:Object;
   
//-------------------------------------------
   
function objectXML(queRutaqueXMLqueObj) {
      
queRuta[queObj] = new Object();
      
docXML = new XML();
      
docXML.ignoreWhite true;
      
docXML.load(queXML);
      
docXML.onLoad = function() {
         
leerXML(this.firstChild0queRuta[queObj]);
         function 
leerXML(rama_xml:XMLNodenivel:Numberobj:Object) {
            for (var 
xml in rama_xml.childNodes) {
               var 
nombreNodo_str:String rama_xml.childNodes[xml].nodeName;
               if (
obj[nombreNodo_str] == undefined) {
                  
obj[nombreNodo_str] = new Array();
               }
               if (
obj[nombreNodo_str]["__atributos"] == undefined) {
                  
obj[nombreNodo_str]["__atributos"] = new Array();
                  for (var 
atributos in rama_xml.childNodes[xml].attributes) {
                     
obj[nombreNodo_str]["__atributos"][atributos] = unescape(rama_xml.childNodes[xml].attributes[atributos]);
                  }
               }
               if (
rama_xml.childNodes[xml].hasChildNodes()) {
                  
leerXML(rama_xml.childNodes[xml], (nivel 1), obj[nombreNodo_str]);
               }
            }
         }
      };
   }

Para cargar el xml:

Código PHP:
var carga:objectXML = new objectXML(this"xml.xml""datos_obj"); 
para cargar y llamar a ala clase

Código PHP:
var carga:objectXML = new objectXML(this"xml1.xml""datos_obj1"); 
y para llamar los datos

Código PHP:
datos_obj.productos.p_0.item_1.__atributos.nombre 
Y va muy bien, el inconveniente es que no lee nada que no sea un atributo, por ejemplo
Código PHP:
<datos>
<
algo>lero lero</algo>
<
cosa>una cosa</cosa>
</
datos

Si pueden guiarme como editar la clase para que lee el contenido les agradezco mucho.

Etiquetas: flash, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:39.