测试根节点 XML .NET

发布于 2024-08-02 01:39:39 字数 440 浏览 6 评论 0原文

我目前正在使用下面的代码来尝试检查某个根节点(rss)和某个命名空间\前缀(itunes),但似乎是说即使提供了随机网页 URL,该提要也是有效的而不是指向提要。

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;

谁能告诉我为什么会这样?

I'm currently using the code below to attempt to check for a certain root node (rss) and a certain namespace\prefix (itunes), but it seems to be saying that the feed is valid even when supplied with a random web page URL instead of one pointing to a 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;

Can anybody tell me why this might be?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

往日情怀 2024-08-09 01:39:39

现在找到解决方案了。 将 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;

Found the solution now. Putting xDoc.Load(_url); in a try .. catch block and returning FeedState.Invalid upon exception seems to have solved my problems.

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;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文