2012-03-15 17 views
6

私は、このリンクhttp://www.gazetaexpress.com/rss.php?cid=1,13&part=rss からRSSフィードを解析しようとしているが、私はそれは私に次のエラーを与える結果を表示しようとすると:オープンとタグRSSでタグの不一致&データの早期の終了を終了

警告:DOMDocumentオブジェクトを:: load()[domdocument.load]:開始タグと終了タグの不一致:強い行208と説明http://www.gazetaexpress.com/rss.php?cid=1,13&part=rss、行:209行目:209行目:同様に、

警告:DOMDocument :: load()[domdocument.load]:データの早期終了http://www.gazetaexpress.com/rss.php?cid=1,13&part=rssのタグのRSSライン2で、行:Cで226:\ WAMP \ WWW \ gazetaExpress \スクリプト\ライン上reader.php 17

私は、構文解析のために使用しているスクリプトは

$xmlDoc->load($xml); 

$x=$xmlDoc->getElementsByTagName('item'); 

for ($i=0; $i<6; $i++) { 
    $item_title=$x->item($i)->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue; 
    $item_link=$x->item($i)->getElementsByTagName('link')->item(0)->childNodes->item(0)->nodeValue; 
    $item_desc=$x->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue; 

// and echo statements 

} 

ですこのサイト(スポーツのように:http://www.gazetaexpress.com/rss.php?cid=1,24&part=rss)から他のRSSフィードを試すと、うまく動作します。それはちょうどうまく動作しない上記のrssフィードです。これを回避する方法はありますか?どんな助けも大変に感謝しています。

+1

エラーは、フィード自体の作成/オーサリングにあります。あなたがそれについて実際にできることは何もありません(あなたがフィードの作者でない限り)。 –

+0

最も良い方法は、サイトに連絡して、RSSフィードが壊れていることを知らせることです。 XML解析に失敗しました XML解析に失敗しました:構文エラー(行:209、文字:159) エラー:終了タグが一致しません – h00ligan

答えて

6

これは<br>と他の自己終了タグの使用によるものです。 domは<br/>のような終わりを見つけようとしますが、<brが始まり、/>が終了です。現代のブラウザでは<tag>に問題はありませんが、php dom関数ではXML標準を維持して、<singletags>を見つけて<singletags />と置き換える必要があります。あなたが解析したいの断片が(「/」または閉じられていないタグなし例えば、自己終了タグ)をXML仕様に準拠していない

4

、それはあなたがloadHTMLで試すことができ、重複するIDを含めるdosesn't場合、それはより寛大です。

$xmlDoc->loadHTML($xml); 
関連する問題