Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/04/2010, 13:56
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Detectar respuesta del servidor (xml mal formado)

Buenas,

Tengo un script que me dice si la pagina que visito me devuelve un código 200 u otro.
El problema es que si accedo a un fichero xml (forzando una ruta invalida) me dice que no es valido

Error que muestra el código fuente si accedo directamente al xml:
<ROOT><error>Expression must evaluate to a node-set.</error></ROOT><?xml version="1.0" encoding="utf-8"?>

Script
Código PHP:
Ver original
  1. <?php
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  4. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
  5. curl_setopt($ch, CURLOPT_URL, "https://www.bwin.com/partner/xml/query.aspx?source=events&lid=4&xpath=/ROOT/EVENTS/");
  6. //curl_setopt($ch, CURLOPT_URL, "http://www.google.es");
  7.  
  8. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  9. curl_setopt($ch, CURLINFO_HEADER_OUT, true);
  10. curl_exec($ch);
  11. $info = curl_getinfo($ch);
  12. echo $info['http_code'];
  13. echo "<pre>";
  14. var_dump(curl_getinfo($ch,CURLINFO_HEADER_OUT));
  15. echo "</pre>";
  16. ?>

Respuesta del script

Código:
200

string(113) "GET /partner/xml/query.aspx?source=events&lid=4&xpath=/ROOT/EVENTS/ HTTP/1.1
Host: www.bwin.com
Accept: */*

"
Me muestra el código 200 porque ha conseguido acceder a la pagina pero como detecto que el xml no esta bien formado? una opción que se me ocurre es con expresiones regulares... coger todo lo que hay entre los tags <error> </error>

Se os ocurre otra forma?

El objetivo es que tengo que leer ese archivo XML y claro antes de leerlo me interesa saber si puedo acceder correctamente y no hay ningún fallo.

Muchas gracias de antemano!