पुराना सवाल, लेकिन यह एक जवाब का हकदार है।
यह निर्धारित करने का एक अपेक्षाकृत सरल तरीका है कि आपको आरएसएस या एटम फ़ीड मिल गया है या नहीं। इसे पढ़ने की आवश्यकता है, या दस्तावेज़ को पढ़ने की कोशिश कर रहा है।
public SyndicationFeed GetSyndicationFeedData(string urlFeedLocation)
{
XmlReaderSettings settings = new XmlReaderSettings
{
IgnoreWhitespace = true,
CheckCharacters = true,
CloseInput = true,
IgnoreComments = true,
IgnoreProcessingInstructions = true,
//DtdProcessing = DtdProcessing.Prohibit // .NET 4.0 option
};
if (String.IsNullOrEmpty(urlFeedLocation))
return null;
using (XmlReader reader = XmlReader.Create(urlFeedLocation, settings))
{
if (reader.ReadState == ReadState.Initial)
reader.MoveToContent();
// now try reading...
Atom10FeedFormatter atom = new Atom10FeedFormatter();
// try to read it as an atom feed
if (atom.CanRead(reader))
{
atom.ReadFrom(reader);
return atom.Feed;
}
Rss20FeedFormatter rss = new Rss20FeedFormatter();
// try reading it as an rss feed
if (rss.CanRead(reader))
{
rss.ReadFrom(reader);
return rss.Feed;
}
// neither?
return null;
}
}
देखें मैंने इसका एक और उदाहरण देखा और मुझे याद नहीं आया कि मुझे यह क्यों पसंद नहीं आया। यह बहुत समय पहले था, और यह काम करता है, इसलिए इसे सबसे अच्छा जवाब मानें, धन्यवाद :) – SelAromDotNet
ठीक है तो जब मैं इस फ़ीड को आजमाता हूं (http://en.espnf1.com/rss/motorsport/story/feeds/0.xml ? type = 2) जो कि एटम 2.0 प्रकार का है, आपका कोड लाइन परमाणु के बाद से काम नहीं करता है। कैनराइड (पाठक) झूठी रिटर्न देता है। एटम वेर को संभालने के लिए यहां समाधान क्या है। 2.0? – Marko
यह परमाणु 2.0 नहीं है, जहां तक मुझे पता है। यह मुझे लगता है कि फ़ीड टूट गई है। इसमें जंक है। इसके आसपास काम करने के लिए, मैं इसे पढ़ने की कोशिश करने से पहले फ़ीड को ठीक करने का सुझाव दूंगा। मैंने अभी कोशिश की और यह मेरे लिए यहां काम करता है। – Cheeso