simplexml_load_file()[function.simplexml-load-file]:期望开始标记,'<'找不到

时间:2013-09-04 14:42:19

标签: php xml rss

我正在使用simplexml_load_file加载BBC Weather RSS Feed,它会随机出现以下错误:

Warning: simplexml_load_file() [function.simplexml-load-file]:  :1: parser error : Start tag expected, '<' not found in

似乎随机失败。我的代码没有动态变化,所以我无法弄清楚为什么它有时会失败。

如果我抓住“假定”缺少<标记的rss文件并将其存储在我的计算机上并将simplexml_load_file指向该位置,则可以正常工作。

任何建议都是最受欢迎的,因为这个小问题让我很生气。

1 个答案:

答案 0 :(得分:0)

试试这个Curl

<?php
$k = 'http://open.live.bbc.co.uk/weather/feeds/en/2656173/3dayforecast.rss';
$ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $k);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $rss = curl_exec($ch);
    curl_close($ch);

    $xml = simplexml_load_string($rss, 'SimpleXMLElement', LIBXML_NOCDATA);
    echo "<pre>";
    print_r($xml);
    echo "</pre>";

    // if you want all items

    //$xml->channel->item item is a array

    //So 

    foreach($$xml->channel->item as $item){
    echo $item->title;  // you can get all results here
    }
?>