2012-03-15 10 views
6

http://www.gazetaexpress.com/rss.php?cid=1,13&part=rss ama bana aşağıdaki hatayı veriyor Sonuçları görüntülemek çalıştığınızda:Açılış ve etiket uyumsuzluğu ve etiket rss verilerin Erken ucunu biten bu bağlantıdan RSS beslemesi ayrıştırmak çalışıyorum

Uyarı: DOMDocument :: yük() [domdocument.load]: C 209: açma ve bitiş etiketi uyuşmazlığı: http://www.gazetaexpress.com/rss.php?cid=1,13&part=rss güçlü hattı 208 ve açıklama, satır \ wamp \ www \ gazetaExpress komut dosyaları \ \ reader.php hattında 17

hem

olarak Uyarı: DOMDocument :: yük() [domdocument.load]: veri sonu eksik C 226:: tag rss hattında 2 http://www.gazetaexpress.com/rss.php?cid=1,13&part=rss yılında, çizgi içinde \ wamp \ www \ gazetaExpress komut \ \ reader.php hattında 17

i ayrıştırma için kullanıyorum komut

$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 

} 

olduğunu Bu siteden diğer rss feedlerini denediğimde (spor: http://www.gazetaexpress.com/rss.php?cid=1,24&part=rss gibi), iyi çalışıyor. Tam olarak çalışmayan yukarıdaki rss feed'i. Bu aşmanın bir yolu var mı? herhangi bir yardım büyük ölçüde takdir edilecektir.

+1

Hata, iletimin kendisinde/yapımındandır. Bu konuda gerçekten yapabileceğiniz hiçbir şey yok (beslemenin yazarı değilseniz). –

+0

En iyi yol siteyle bağlantı kurmak ve RSS beslemelerinin bozuk olduğunu bildirmektir. Opera bu hatayı veriyor: sözdizimi hatası (Hat: 209, Karakter: 159) Hata: uyumsuz sonu etiketi XML ayrıştırma XML ayrıştırma başarısız başarısız – h00ligan

cevap

6

Bu, <br> ve diğer kendi kendine kapanma etiketlerinin kullanımı nedeniyle oluşur. Dom, bu <br/> gibi, <br'un başladığı ve />'un sonu olduğunu bulmaya çalışır. Modern tarayıcılar, <tag> ile sorun yaşamayacaklar ancak php dom işlevi hala XML standardını korumanızı istiyor, böylece <singletags> kodunu bulmanız ve <singletags /> ile değiştirin.

XML özelliklerine uygun değildir ayrıştırmak istediğiniz fragmanı (örn '/' veya kapanmamış etiketleri olmadan kendiliğinden kapanan etiketleri) Eğer ile loadHTML deneyebilirsiniz yinelenen kimlikleri içeriyor dosesn't ve ona, eğer daha hoşgörülü
4

var zaman .

$xmlDoc->loadHTML($xml);