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:
y la clase para leerlo es<?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>
Código PHP:
class objectXML {
private var docXML:Object;
//-------------------------------------------
function objectXML(queRuta, queXML, queObj) {
queRuta[queObj] = new Object();
docXML = new XML();
docXML.ignoreWhite = true;
docXML.load(queXML);
docXML.onLoad = function() {
leerXML(this.firstChild, 0, queRuta[queObj]);
function leerXML(rama_xml:XMLNode, nivel:Number, obj: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]);
}
}
}
};
}
}
Código PHP:
var carga:objectXML = new objectXML(this, "xml.xml", "datos_obj");
Código PHP:
var carga:objectXML = new objectXML(this, "xml1.xml", "datos_obj1");
Código PHP:
datos_obj.productos.p_0.item_1.__atributos.nombre
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.