Foros del Web » Programando para Internet » PHP »

Obtener valor de un xml

Estas en el tema de Obtener valor de un xml en el foro de PHP en Foros del Web. Buen día, mi nombre es Carlos y soy nuevo por estos lados, tengo un documento xml con el siguiente contenido: Código: <?xml version="1.0" encoding="UTF-8"?> <cfdi:Comprobante ...
  #1 (permalink)  
Antiguo 19/01/2015, 13:29
 
Fecha de Ingreso: diciembre-2014
Mensajes: 5
Antigüedad: 9 años, 3 meses
Puntos: 0
Obtener valor de un xml

Buen día, mi nombre es Carlos y soy nuevo por estos lados, tengo un documento xml con el siguiente contenido:

Código:
<?xml version="1.0" encoding="UTF-8"?>
<cfdi:Comprobante xmlns:xsi="Ejemplo" xmlns:cfdi="Ejemplo" tipoDeComprobante="Ejemplo" metodoDePago="Ejemplo" noCertificado="Ejemplo" formaDePago="Ejemplo"> 
	<cfdi:Emisor nombre="Ejemplo" rfc="Ejemplo">
		<cfdi:RegimenFiscal Regimen="Ejemplo"/>
	</cfdi:Emisor>
	<cfdi:Receptor nombre="Ejemplo" rfc="000000000"/>
</cfdi:Comprobante>
y mediante un php pretendo imprimir en pantalla el valor del rfc de la etiqueta receptor de mi xml

Código PHP:
<?php
if($xml simplexml_load_file("xml001.xml"))
        {
         echo 
"Se cargo el archivo <br>";

         foreach (
$xml->Receptor as $nodo);
                 {
                  echo 
$nodo->Comprobante->Receptor[0]->rfc."<< <br>";
                 }
         }
else
      {
       echo 
"No se cargo el archivo <br>";
      }
?>
He leído varios artículos incluyendo el siguiente:
http://www.forosdelweb.com/f18/aporte-leer-xml-con-simplexml-dom-792348/

al momento de intentar los ejemplos que da el autor, no me genera ningún problema, pero al intentarlo con mi documento xml simplemente no me arroja nada, no me marca errores, es como si el atributo que busco imprimir no existiera.

Probablemente el problema sea de mi xml pero se me agotaron las ideas, si alguien ve algo mal o me pudieran auxiliar seria de mucha utilidad.

De ante mano muchas gracias.
Saludos.
  #2 (permalink)  
Antiguo 19/01/2015, 13:35
 
Fecha de Ingreso: octubre-2014
Ubicación: Buenos Aires
Mensajes: 278
Antigüedad: 9 años, 6 meses
Puntos: 12
Respuesta: Obtener valor de un xml

Hola CRangel_ bienvenido al foro, podrías poner algo del documento xml para ver la estructura del mismo.

Saludos.
__________________
http://www.sp-vision.net
  #3 (permalink)  
Antiguo 19/01/2015, 13:40
 
Fecha de Ingreso: diciembre-2014
Mensajes: 5
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Obtener valor de un xml

Cita:
Iniciado por mauritosuarez Ver Mensaje
Hola CRangel_ bienvenido al foro, podrías poner algo del documento xml para ver la estructura del mismo.

Saludos.
Hola,muchas gracias :), el documento xml es el siguiente:

Código HTML:
<?xml version="1.0" encoding="UTF-8"?>
<cfdi:Comprobante xmlns:xsi="Ejemplo" xmlns:cfdi="Ejemplo" tipoDeComprobante="Ejemplo" metodoDePago="Ejemplo" noCertificado="Ejemplo" formaDePago="Ejemplo"> 
	<cfdi:Emisor nombre="Ejemplo" rfc="Ejemplo">
		<cfdi:RegimenFiscal Regimen="Ejemplo"/>
	</cfdi:Emisor>
	<cfdi:Receptor nombre="Ejemplo" rfc="000000000"/>
</cfdi:Comprobante> 
  #4 (permalink)  
Antiguo 19/01/2015, 13:41
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Obtener valor de un xml

No se entiende muy bien el XML pero creo que sería esto:

Código PHP:
foreach ($xml->Comprobante as $nodo);
                 {
                  echo 
$nodo->Receptor[0]->rfc "<< <br>"//uno de los dos creo...
                  
echo $nodo->Receptor->rfc "<< <br>";
                 } 
  #5 (permalink)  
Antiguo 19/01/2015, 13:57
 
Fecha de Ingreso: diciembre-2014
Mensajes: 5
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Obtener valor de un xml

No arroja nada, sigue igual, ¿por qué le quitaste lo de Comprobante? según yo entendí "Comprobante" viene siendo el nodo padre y "Receptor" es el nodo hijo, en donde "rfc" es atributo del nodo hijo "Receptor", así como lo pones tu quedarían jerarquicamente iguales "Comprobante" y "Receptor".

¿Asi es correcto?
  #6 (permalink)  
Antiguo 19/01/2015, 14:03
 
Fecha de Ingreso: diciembre-2014
Mensajes: 5
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Obtener valor de un xml

Cita:
Iniciado por dasapa Ver Mensaje

Código PHP:
foreach ($xml->Comprobante as $nodo); 
Ya entendí, no había visto bien esta parte, pero tristemente aun así no me imprime el valor de rfc :(
  #7 (permalink)  
Antiguo 19/01/2015, 14:42
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Obtener valor de un xml

$xml->Comprobante as $nodo

Comprobante es el nodo padre y con esto $nodo obtienes datos de los hijos, correcto? Si el XML es algo similar a lo de abajo y quieres obtener la etiqueta Ayuda deberías poner:

Código PHP:
echo $nodo->Receptor->rfc;

<
Comprobante>
<
Receptor>
<
Nombre>Forosdelweb</Nombre>
<
rfc>Ayuda</rfc>
</
Receptor>
</
Comprobante
  #8 (permalink)  
Antiguo 19/01/2015, 17:14
 
Fecha de Ingreso: diciembre-2014
Mensajes: 5
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Obtener valor de un xml

creo que ya te voy entendiendo, pero mas bien la estructura del xml es la siguiente:

<Comprobante>
<Receptor nombre="Ejemplo" rfc="Ayuda"/>
</Comprobante>

El rfc es un atributo del nodo hijo Receptor.

¿No debes declarar alguna otra variable para imprimir los atributos?

Etiquetas: valor, 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 04:02.