2012-03-15 12 views
6

मैं इस लिंक से आरएसएस फ़ीड पार्स करने के लिए कोशिश कर रहा हूँ http://www.gazetaexpress.com/rss.php?cid=1,13&part=rss लेकिन जब मैं परिणाम यह मुझे निम्न त्रुटि देता है प्रदर्शित की कोशिश:खुलने और टैग बेमेल और टैग आरएसएस में डेटा के समय से पहले समाप्त न खत्म होने वाली

चेतावनी: DOMDocument :: लोड() [domdocument.load]: खोलने और अंत टैग बेमेल: सी में 209:: मजबूत लाइन 208 और http://www.gazetaexpress.com/rss.php?cid=1,13&part=rss में विवरण, लाइन \ WAMP \ www \ gazetaExpress \ लिपियों \ लाइन पर reader.php 17

साथ ही

चेतावनी: DOMDocument :: लोड() [domdocument.load]: डेटा का समयपूर्व अंत 226 सी में: टैग आरएसएस लाइन 2 http://www.gazetaexpress.com/rss.php?cid=1,13&part=rss में, लाइन में \ 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), यह ठीक काम करता है। यह वास्तव में उपर्युक्त आरएसएस फ़ीड है जो काम नहीं करेगा। क्या इसके आसपास पाने के लिए कोई रास्ता नहीं है? किसी भी सहायता की बेहद सराहना की जाएगी।

+1

त्रुटि फ़ीड के निर्माण/संलेखन में है। ऐसा कुछ भी नहीं है जो आप वास्तव में इसके बारे में कर सकते हैं (जब तक कि आप फ़ीड के लेखक न हों)। –

+0

साइट से संपर्क करने और उन्हें सूचित करने का सबसे अच्छा तरीका होगा कि उनकी आरएसएस फ़ीड टूट गई है। ओपेरा यह त्रुटि देता है: एक्सएमएल पार्सिंग असफल एक्सएमएल पार्सिंग असफल: सिंटैक्स त्रुटि (रेखा: 20 9, कैरेक्टर: 15 9) त्रुटि: बेमेल एंड एंड टैग – h00ligan

उत्तर

6

यह <br> और अन्य स्वयं बंद टैग के उपयोग के कारण है। डोम इस <br/> जैसे अंत को खोजने का प्रयास करता है जहां <br प्रारंभ होता है और /> समाप्त होता है। आधुनिक ब्राउज़रों को <tag> के साथ समस्या नहीं होगी लेकिन php dom function अभी भी आपको XML मानकों को रखना चाहता है, इसलिए आपको <singletags> को खोजने की आवश्यकता है और उन्हें ठीक से काम करने की तुलना में <singletags /> के साथ प्रतिस्थापित करें।

4

टुकड़ा आप पार्स करने के लिए एक्सएमएल चश्मा के अनुरूप नहीं है चाहते हैं (उदाहरण के लिए '/' या खुली हुई टैग के बिना आत्म समापन टैग) और अगर यह dosesn't डुप्लीकेट आईडी शामिल आप साथ की कोशिश कर सकते loadHTML, इसे और अधिक अनुमोदक है जब ।

$xmlDoc->loadHTML($xml);