Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/03/2010, 19:50
Avatar de yeudiel
yeudiel
 
Fecha de Ingreso: abril-2008
Ubicación: Ciudad de México
Mensajes: 78
Antigüedad: 16 años, 8 meses
Puntos: 1
Sonrisa Ayuda con un objeto (simple xml)

Hola de nuevo, aqui ando de nuevo pidiendoles su valiosa ayuda. Bueno les explico cual es mi problema:

Tengo una aplicacion de facturacion electronica y esta genera la factura en un archivo xml la cual pongo aqui:

Código HTML:
<?xml version="1.0" encoding="UTF-8"?>
<Comprobante fecha="2005-09-02T16:30:00" folio="1" noAprobacion="1" noCertificado="00001000000000000114" sello="iYyIk1MtEPzTxY3h57kYJnEXNae9lvLMgAq3jGMePsDtEOF6XLWbrV2GL/2TX00vP2+YsPN+5UmyRdzMLZGEfESiNQF9fotNbtA487dWnCf5pUu0ikVpgHvpY7YoA4lB1D/JWc+zntkgW+Ig49WnlKyXi0LOlBOVuxckDb7EAx4=" serie="A" version="1.0">
	<Emisor nombre="Industrias del Sur Poniente, S.A. de C.V." rfc="ISP900909Q88">
		<DomicilioFiscal calle="Alvaro Obregón" codigoPostal="06700" colonia="Col. Roma Norte" estado="Distrito Federal" localidad="México" municipio="Cuauhtémoc" noExterior="37" noInterior="3" pais="México"/>
		<ExpedidoEn calle="Pino Suarez" codigoPostal="95460" colonia="Centro" estado="Nuevo Léon" localidad="Monterrey" municipio="Monterrey" noExterior="23" pais="México"/>
	</Emisor>
	<Receptor nombre="Rosa María Calderón Uriegas" rfc="CAUR390312S87">
		<Domicilio calle="Topochico" codigoPostal="95465" colonia="Jardines del Valle" estado="Nuevo León" localidad="Monterrey" municipio="Monterrey" noExterior="52" pais="México"/>
	</Receptor>
	<Conceptos>
		<Concepto cantidad="10" descripcion="Vasos decorados" importe="200" unidad="Caja" valorUnitario="20"/>
		<Concepto cantidad="1" descripcion="Charola metálica" importe="150" unidad="pieza" valorUnitario="150"/>
	</Conceptos>
	<Impuestos>
		<Traslados>
			<Traslado importe="52.5" impuesto="IVA"/>
		</Traslados>
	</Impuestos>
</Comprobante> 
Lo que quiero hacer es parsear este xml para obtener todos los datos de los namespace, para esto uso simplexml, pero no logro obtener la informacion como quiero, por que esta funcion me devuelve un objeto y como el XML entre los namespace no tiene informacion, todo esta en atributos de cada namespace y en cada factura los atributos cambian, es decir, en una el namespace de traslado tiene el atributo importe e impuesto, pero en otra con otro cliente tiene el de importe, impuesto, tasa y descuento. Lo que necesito es obtener tanto el valor de cada namespace y atributos en varias variables (seria mejor un array) para manejarlas despues.


Logre hacer un pequeño codigo q genera un array pero como cada factura es diferente, en las q tienen los mismos namespace no hay pex, pero en las diferentes no me funciona, aki les dejo una pequeña muestra de mi rudimentario codigo, XD:

Código PHP:
$xml simplexml_load_file($dir."DWM000001.xml");
$generales $xml->attributes();
$dato=array();
$x=0;
foreach (
$generales as $key => $val 
    {
$dato["cabecera"][$x]=(string)$val;
$x++;
     } 
con un print_r devuelve [0],[1],[2] y etc. pero si hay una propiedad mas en medio o al principio o donde sea, se agrega un numero mas al array y me deja diferente todo.

Si alguien me pudiera ayudar de antemano mil gracias