2009-08-10 3 views
0

Ich verwende derzeit den folgenden Code, um zu versuchen, nach einem bestimmten Wurzelknoten (rss) und einem bestimmten Namespace \ Präfix (itunes) zu suchen, aber es scheint zu sagen, dass der Feed ist gültig, auch wenn sie mit einer zufälligen Webseiten-URL geliefert wird, anstatt auf einen Feed zu zeigen.Test für Root-Knoten XML .NET

FeedState state = FeedState.Invalid; 

XmlDocument xDoc = new XmlDocument(); 
xDoc.Load(_url); 

XmlNode root = xDoc.FirstChild; 
if (root.Name.ToLower() == "rss" && root.GetNamespaceOfPrefix("itunes") == "http://www.itunes.com/dtds/podcast-1.0.dtd") 
{ 
    state = FeedState.Valid; 
} 

return state; 

Kann mir jemand sagen, warum das sein könnte?

+0

Sie sagen also, Sie sind in Ihren Code getreten und es wird State = FeedState.Valid ;? Egal was rss Feed Sie versuchen? "Ja wirklich?" :) – aquinas

Antwort

0

Die Lösung jetzt gefunden. Setzen von xDoc.Load (_url); in einem Versuch .. Catch-Block und FeedState.Invalid bei Ausnahme zurück zu liefern scheint meine Probleme gelöst zu haben.

FeedState state = FeedState.Invalid; 

XmlDocument xDoc = new XmlDocument(); 

try 
{ 
    xDoc.Load(_url); 
} 
catch 
{ 
    return state; 
} 

XmlNode root = xDoc.FirstChild; 
if (root.Name.ToLower() == "rss" && root.GetNamespaceOfPrefix("itunes") == "http://www.itunes.com/dtds/podcast-1.0.dtd") 
{ 
    state = FeedState.Valid; 
} 

return state;