测试根节点XML .NET

时间:2009-08-10 17:09:53

标签: c# xml root

我目前正在使用下面的代码尝试检查某个根节点(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;

有人可以告诉我为什么会这样吗?

1 个答案:

答案 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;