我目前正在使用下面的代码尝试检查某个根节点(rss)和某个名称空间\前缀(itunes),但它似乎是说即使随机提供了Feed也是有效的网页网址而不是指向Feed的网址。
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;
有人可以告诉我为什么会这样吗?
答案 0 :(得分:0)
现在找到解决方案。放xDoc.Load(_url);在一个try .. catch块并返回FeedState.Invalid异常似乎解决了我的问题。
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;