无法从PHP中的url获取xml

时间:2014-07-17 20:51:21

标签: php xml

我对php和xml都很新。我想做什么 从调用url的xml中读取php,然后解析xml。 (当$ urlip =' localfile.xml'时,我可以在下面的例子中使用它。 但是当我输入网址时却没有。我通过浏览器访问它检查了网址, 我可以看到xml。我也做了一个节目源,复制它然后粘贴了 xml进入localfile,工作正常 在尝试从URL获取xml时我做错了什么?

谢谢

返回的错误是: 加载XML Start标记时出错,'<'找不到

这是我的代码剪辑它:

$urlip="test.xml";# for debugging since I cannot read from the url yet!  not sure why....
if (($xml = file_get_contents($urlip))===false) {
   echo "error fetching XML\n";
} else {
    libxml_use_internal_errors(true);
    $data = simplexml_load_string($xml,null,LIBXML_NOCDATA);
    if (!$data) {
        echo "Error loading XML\n";
        foreach(libxml_get_errors() as $error) {
            echo "\t", $error->message;
        }
    } else {
        foreach ($data as $item) {
            $type = $item->TAB_TYPE;
            $number=$item->ALT_ID;
            $title = $item->SHORT_DESCR;
            $searchlink = $item->ID;
            $rsite=$item->CATEGORY;
            echo "type $type, number $number, title $title, search link $searchlink, site $rsite\n";
        }
    }
}

1 个答案:

答案 0 :(得分:0)

最有可能出现的情况:

  1. 您的函数查询远程URL并返回一个空字符串,该字符串会传递“if”语句的条件。

  2. 之后 - 您尝试将空字符串传递给XML,但它不能,因此它会给您一个错误。

  3. 您的解决方法:

    1. 配置php以打开远程URL作为对您的问题状态的评论 - url_fopen
    2. 使用另一种方式从网址获取内容 - cURL库效果很好