阅读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();
我讨厌发布这样一个“请修复代码”的问题,但我真的被卡住了。 我已经尝试了几个教程(一些给出编译错误),但没有帮助。 我假设我正在使用XmlReader
和XmlDocument
以正确的方式,因为这是每个指南中常见的事情。
您的枚举器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();