2014-07-17 143 views
0

我對php和xml都很新。我正在嘗試在 PHP中執行的操作是通過調用URL來讀取xml,然後解析xml。 (我可以得到這個工作在下面的例子$ urlip ='localfile.xml' 但不是當我把一個URL。我已經檢查了與我的瀏覽器, 它的URL,我可以看到XML我還做了一個節目源,複製,然後粘貼 XML到LOCALFILE和工作正常。
什麼我試圖從URL獲取XML做錯了嗎?無法從PHP中獲取xml url

謝謝

返回的錯誤是: 加載XML開始標記時出現錯誤,'<'找不到

這裏是我的代碼剪斷它:

$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"; 
     } 
    } 
} 
+0

1-您可以打印file_get_contents操作的結果並查看是否加載了XML。根據PHP配置,這個函數不能讀取遠程文件,可以使用curl來抓取XML。這裏的一個例子如何在PHP中使用CURL http://davidwalsh.name/curl-download –

+0

'加載XML開始標籤預期錯誤,'<'找不到'..你是否完全驗證XML文件中的語法..錯誤指向一個缺少'<' – sunbabaphu

+0

這個錯誤意味着你的XML有一個問題,而不是你的PHP –

回答

0

從什麼樣子最有可能的情況:

  1. 你的函數查詢遠程URL,並返回一個空字符串,其通過的條件你的'如果'的聲明。

  2. 之後 - 你嘗試將空字符串傳遞給XML,但它不能,所以它給你一個錯誤。

你的步驟來解決這個問題:

  1. 配置PHP來打開遠程URL作爲註釋你的問題的狀態 - url_fopen
  2. 用另一種方式來從URL內容 - 捲曲庫運作良好