阅读Stack Overflow RSS feed

我正在尝试从Feed中获取未回答的问题列表,但我无法阅读它。

const string RECENT_QUESTIONS = "https://stackoverflow.com/feeds"; XmlTextReader reader; XmlDocument doc; // Load the feed in reader = new XmlTextReader(RECENT_QUESTIONS); //reader.MoveToContent(); // Add the feed to the document doc = new XmlDocument(); doc.Load(reader); // Get the  element XmlNodeList feed = doc.GetElementsByTagName("feed"); // Loop through each item under feed and add to entries IEnumerator ienum = feed.GetEnumerator(); List entries = new List(); while (ienum.MoveNext()) { XmlNode node = (XmlNode)ienum.Current; if (node.Name == "entry") { entries.Add(node); } } // Send entries to the data grid control question_list.DataSource = entries.ToArray(); 

我讨厌发布这样一个“请修复代码”的问题,但我真的被卡住了。 我已经尝试了几个教程(一些给出编译错误),但没有帮助。 我假设我正在使用XmlReaderXmlDocument以正确的方式,因为这是每个指南中常见的事情。

您的枚举器ienum仅包含元素元素。 由于此节点的名称不是entry因此不会向entries添加任何entries

我猜你想要迭代元素的子节点。 请尝试以下方法:

 const string RECENT_QUESTIONS = "http://stackoverflow.com/feeds"; XmlTextReader reader; XmlDocument doc; // Load the feed in reader = new XmlTextReader(RECENT_QUESTIONS); //reader.MoveToContent(); // Add the feed to the document doc = new XmlDocument(); doc.Load(reader); // Get the  element. XmlNodeList feed = doc.GetElementsByTagName("feed"); XmlNode feedNode = feed.Item(0); // Get the child nodes of the  element. XmlNodeList childNodes = feedNode.ChildNodes; IEnumerator ienum = childNodes.GetEnumerator(); List entries = new List(); // Iterate over the child nodes. while (ienum.MoveNext()) { XmlNode node = (XmlNode)ienum.Current; if (node.Name == "entry") { entries.Add(node); } } // Send entries to the data grid control question_list.DataSource = entries.ToArray();