通过HTTP使用simplexml_load_file时出错

时间:2014-09-04 14:38:20

标签: php xml curl

我在php中使用simplexml_load_file通过HTTP检索XML内容。

这是我的代码:

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&#34 ;; 它有效,但如果我使用$ url =" http://www.gazzetta.it/ssi/2011/boxes/calcio/squadre/atalanta/formazione/formazione.xml&#34 ;; 我有这个错误:

[Thu Sep 04 16:37:01 2014] [error] [client 127.0.0.1] PHP警告:simplexml_load_file():http://www.gazzetta.it/ssi/2011/boxes/calcio/squadre/atalanta/formazione/formazione.xml:1:解析器错误:开始预期标记,'<& #39;在第42行的/var/www/fanta/prova1.php中找不到 [2014年9月4日16:37:01] [错误] [客户端127.0.0.1] PHP警告:第42行/var/www/fanta/prova1.php中的simplexml_load_file():\ x1f \ x8b \ b [2014年9月4日16:37:01] [错误] [客户端127.0.0.1] PHP警告:simplexml_load_file():^ / 42/42 / /// / a / www下的/var/www/fanta/prova1.php

你可以帮帮我吗? 谢谢 pasquy73

1 个答案:

答案 0 :(得分: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();
    }

?>