Foros del Web » Programando para Internet » PHP »

Manejar error en loadXML()

Estas en el tema de Manejar error en loadXML() en el foro de PHP en Foros del Web. Hola. En un código php recupero los datos que me lleguen de la siguiente forma: Código PHP: //Carga del xml recibido      $xml  =  file_get_contents ( 'php://input' );  ...
  #1 (permalink)  
Antiguo 06/03/2014, 01:37
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Manejar error en loadXML()

Hola.
En un código php recupero los datos que me lleguen de la siguiente forma:

Código PHP:
//Carga del xml recibido
    
$xml file_get_contents('php://input'); 
Luego, proceso el xml que recupero... pero necesito gestionar que no siempre me puede llegar un xml... siendo otro tipo de mensaje, o incluso vacío.

Código PHP:
if ($dom->loadXML($xml)){ 
Si lo que me llega es vacío .... me retorna el siguiente warnning:

Warning: DOMDocument::loadXML(): Empty string supplied as input in ....

¿Cómo puedo gestionar, comparar, averiguar... si recibo un xml y por tanto "hacer algo" o si es vacío "hacer otra cosa"?

Gracias
  #2 (permalink)  
Antiguo 06/03/2014, 07:00
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Manejar error en loadXML()

ASI
Código PHP:
$xml file_get_contents('php://input');  
if(
trim($xml)==""){
echo 
"esta bacio";
}else{
echo 
"No esta bacio";

  #3 (permalink)  
Antiguo 06/03/2014, 07:29
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Manejar error en loadXML()

Gracias....
A la respuesta, le antepongo lo que indico, y así lo recupero todo ok.

Código PHP:
if ( $_SERVER['REQUEST_METHOD'] === 'POST' ){
        
$xml file_get_contents('php://input');
    } 
Gracias

Etiquetas: manejar
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 02:06.