2013-08-02 84 views
0

當我嘗試閱讀www.thetechjournal.com上的rss feed時,我什麼都沒有收到。他們使用wordpress生成rss,所以我認爲它與此有關。simplexml_load_file無法在www.thetechjournal.com上閱讀rss feed

<?php 
$url = 'http://feeds.thetechjournal.com/TheTechJournal'; 
$rss = simplexml_load_file($url); 
print_r($rss); 
?> 

更新:有問題的XML作爲圖像附加。

offending XLM markup is in this image

+0

您可以使用該服務來檢查飼料是否是有效的(儘管它似乎並沒有被目前適合我加載)http://validator.w3.org/feed/ – IMSoP

回答

1

他們的Feed有錯誤。用這個檢查:

$url = 'http://feeds.thetechjournal.com/TheTechJournal'; 
libxml_use_internal_errors(true); 
$sxe = simplexml_load_string($url); 
if ($sxe === false) { 
echo "Failed loading XML\n"; 
foreach(libxml_get_errors() as $error) { 
    echo "\t", $error->message; 
} 
} 
print_r($rss); 
+0

只是澄清,任何形式的PHP XML解析將失敗,因爲它回來無效CDATA – wunderdojo

+0

您好wunderdojo,謝謝你的代碼。當我運行你的代碼時,我收到以下錯誤消息:「加載XML開始標記失敗,'<找不到」我在找到源中缺少的字符,但找不到它。你能解釋這個錯誤信息嗎? –

+0

該提要未傳遞有效的XML標記。在處理之前,我只是嘗試了幾件事來嘗試清理它,但沒有去。這就是我要去的地方: $ url =「http://feeds.thetechjournal.com/TheTechJournal」; $ file = file_get_contents($ url,FALSE,stream_context_create(array('http'=> array('user_agent'=>'php')))); $ xml = html_entity_decode($ file,ENT_COMPAT,'UTF-8'); $ dom = new DOMDocument; $ dom-> loadXML($ xml); echo $ dom-> saveXml(); – wunderdojo