0

現在、以下のコードを使用して、特定のルート ノード (rss) と特定の名前空間\プレフィックス (itunes) を確認しようとしていますが、ランダムな Web ページ 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;

これがなぜなのか誰か教えてもらえますか?

4

1 に答える 1

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;
于 2009-08-11T11:08:37.193 に答える