2012-06-13 12 views
5

मैं SyndicationFeed कक्षा का उपयोग करके एक साधारण आरएसएस रीडर बनाने की कोशिश कर रहा हूं।एक साधारण आरएसएस रीडर बनाना, सामग्री को पुनर्प्राप्त करना

कुछ मानक टैग हैं, जैसे <title>, <link>, <description> ... उनके साथ कोई समस्या नहीं है।

लेकिन कुछ अन्य टैग हैं। उदाहरण के लिए, this feed में, जो वर्डप्रेस द्वारा बनाया गया है, <content:encoded> टैग है। मुझे लगता है कि अन्य वेबसाइटों के सामग्री भाग के लिए अन्य टैग भी हो सकते हैं। सही?

मैं जानना चाहता हूं कि प्रत्येक पोस्ट की मुख्य सामग्री कैसे प्राप्त करें, क्या कोई मानक है? मुझे किस टैग की तलाश करनी चाहिए?

(उदाहरण के लिए, एक साइट <content:encoded> उपयोग कर सकते हैं लेकिन कुछ अन्य बस <description> का उपयोग करें या किसी अन्य मानक का उपयोग करें ... मैं क्या मुख्य एक पोस्ट की सामग्री को पुन: प्राप्त करने के लिए क्या करने के लिए पता नहीं है)

पीएस: मैं अपने सरल आरएसएस पाठक का परीक्षण करने के लिए इस कोड का उपयोग कर रहा हूं:

 var reader = XmlReader.Create("http://feed.2barnamenevis.com/2barnamenevis"); 
     var feed = SyndicationFeed.Load(reader); 

     string s = ""; 
     foreach (SyndicationItem i in feed.Items) 
     { 
      s += i.Title.Text + "<br />" + i.Summary.Text + "<br />" + i.PublishDate.ToString() + "<br />"; 
      foreach (SyndicationElementExtension extension in i.ElementExtensions) 
      { 
       XElement ele = extension.GetObject<XElement>(); 
       s += ele.Name + " :: " + ele.Value + "<br />"; 
      } 
      s += "<hr />"; 
     } 
     return s; 
+0

आप जो समर्थन करना चाहते हैं उस पर निर्भर करता है। सामग्री तत्व आरएसएस 2.0 का हिस्सा नहीं है लेकिन एटम (आरएसएस 4287) है। आरएसएस 2.0 चश्मा पढ़ें http://cyber.law.harvard.edu/rss/rss.html#hrelementsOfLtitemgt –

+0

पिछली बार मैंने एक आरएसएस पाठक लिखने की कोशिश की, अंत में मुझे एहसास हुआ कि वहां बड़ी संख्या में फ़ीड किसी भी मानकों का पालन न करें। फ़ीड्स पढ़ने की बात आने पर वहां के प्रमुख पाठकों को बहुत क्षमा करना चाहिए। मैं इसे वेबपृष्ठों को पढ़ने वाले ब्राउज़र की तरह दिखता हूं - यदि लोग मानकों का पालन करते हैं, तो कोई समस्या नहीं है, लेकिन यदि नहीं, तो आप एक-एक-एक परिदृश्य को संभालने के लिए पूरे दिन कस्टम सामान लिखेंगे। –

+0

@ जोएनोस अन्य फ़ीड रीडर एप्लिकेशन क्या करता है? वे हर फ़ीड पढ़ सकते हैं। वे ऐसा कैसे करते हैं ?! –

उत्तर

1

मैं पाया है Argotic सिंडिकेशन फ्रेमवर्क (JoeEnos से धन्यवाद)।

Argotic में कई एक्सटेंशन हैं, जिनका उपयोग उन तत्वों को संभालने के लिए किया जा सकता है जो मानक नहीं हैं।

उदाहरण के लिए, आप <content:encoded> पुनर्प्राप्त करने के लिए Argotic.Extensions.Core.SiteSummaryContentSyndicationExtension का उपयोग कर सकते हैं। आप एक उदाहरण here देख सकते हैं। (यदि है कि उदाहरण के सामग्री के लिए रिटर्न null, तो आप बस MyRssItem.Description का उपयोग करना चाहिए)

कुछ अन्य उपयोगी एक्सटेंशन WellFormedWebCommentsSyndicationExtension और SiteSummarySlashSyndicationExtension (पुन: प्राप्त करने की टिप्पणियां फ़ीड URL के लिए) कर रहे हैं (टिप्पणी पुन: प्राप्त करने के लिए गिनती)। Argotic और RSS.NET दोनों आशाजनक लग रही है -

0

आप जो समर्थन करना चाहते हैं उस पर निर्भर करता है। सामग्री तत्व आरएसएस 2.0 का हिस्सा नहीं है लेकिन एटम (आरएसएस 4287) है।

पढ़ें RSS2.0 चश्मा http://cyber.law.harvard.edu/rss/rss.html#hrelementsOfLtitemgt पढ़ें एटम चश्मा http://tools.ietf.org/html/rfc4287

+0

मैं सिर्फ लोकप्रिय प्रारूपों का समर्थन करना चाहता हूं, जैसे कि उपलब्ध प्रत्येक फीड रीडर एप्लिकेशन ... फ़ीड रीडर एप्लिकेशन किसी भी प्रकार के सामग्री टैग के साथ सबकुछ पढ़ सकते हैं ... –

4

हमारी चर्चा से टिप्पणी में, मैं शायद खरोंच से यह निर्माण के बजाय एक 3 पार्टी विक्रेता के साथ जा रहा सुझाव देना चाहेंगे।

+0

आरएसएस.नेट नीचे है। –

संबंधित मुद्दे