2014-09-04 2 views
0

Я использую simplexml_load_file в php для получения содержимого XML через HTTP.Ошибка с simplexml_load_file через HTTP

Вот мой код:

if ($xml = simplexml_load_file($url)) { 
    $item_list = $xml->xpath("/probabile_formazione/titolari/calciatore"); 
    foreach ($item_list as $item) { 
     echo $item . ' '; 
    } 
} 

если я использую $ URL = "http://www.gazzetta.it/ssi/2011/boxes/calcio/squadre/cagliari/formazione/formazione.xml"; он работает, но если я использую $ url = "http://www.gazzetta.it/ssi/2011/boxes/calcio/squadre/atalanta/formazione/formazione.xml"; Я получил эту ошибку:

[Чт Сен 04 16:37:01 2014] [ошибка] [клиент 127.0.0.1] PHP Warning: simplexml_load_file(): http://www.gazzetta.it/ssi/2011/boxes/calcio/squadre/atalanta/formazione/formazione.xml:1: Ошибка синтаксического анализа: открывающий тег ожидается, '< 'не найден в /var/www/fanta/prova1.php в строке 42 [Чт сен 04 16:37:01 2014] [ошибка] [клиент 127.0.0.1] PHP Предупреждение: simplexml_load_file(): \ x1f \ x8b \ b в /var/www/fanta/prova1.php в строке 42 [Чт 04-04 16:37:01 2014] [ошибка] [клиент 127.0.0.1] PHP Предупреждение: simplexml_load_file():^in/var/www/fanta/prova1.php on line 42

Не могли бы вы мне помочь? Спасибо pasquy73

+0

Что находится в строке 42? –

+0

строка 42: if ($ xml = simplexml_load_file ($ url)) ... – pasquy73

ответ

1

Я думаю, что ответ xml был искажен. Вы должны обрабатывать возможные ошибки получения правильного xml, например:

<? 
    $url = "http://www.gazzetta.it/ssi/2011/boxes/calcio/squadre/atalanta/formazione/formazione.xml"; 

    libxml_use_internal_errors(true); 

    if ($xml = simplexml_load_file($url)) { 
     $item_list = $xml->xpath("/probabile_formazione/titolari/calciatore"); 
     foreach ($item_list as $item) { 
      echo $item . ' '; 
     } 
    } 
    else { 

     foreach (libxml_get_errors() as $error) { 
      print_r($error); 
     } 

     libxml_clear_errors(); 
    } 

?> 
Смежные вопросы