C# 读取堆栈溢出RSS提要
我试图从你那里得到一份未回答问题的清单,但我在阅读时遇到了困难C# 读取堆栈溢出RSS提要,c#,xml,feed,xmldocument,xmlreader,C#,Xml,Feed,Xmldocument,Xmlreader,我试图从你那里得到一份未回答问题的清单,但我在阅读时遇到了困难 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 t
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 <feed> element
XmlNodeList feed = doc.GetElementsByTagName("feed");
// Loop through each item under feed and add to entries
IEnumerator ienum = feed.GetEnumerator();
List<XmlNode> entries = new List<XmlNode>();
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();
const string最近的问题=”https://stackoverflow.com/feeds";
XmlTextReader;
xml文档文档;
//加载馈送
reader=新的XmlTextReader(最近的问题);
//reader.MoveToContent();
//将提要添加到文档中
doc=新的XmlDocument();
文件加载(读卡器);
//获取元素
XmlNodeList提要=doc.GetElementsByTagName(“提要”);
//循环浏览提要下的每个项目并添加到条目
IEnumerator ienum=feed.GetEnumerator();
列表条目=新列表();
while(ienum.MoveNext())
{
XmlNode节点=(XmlNode)ienum.Current;
如果(node.Name==“条目”)
{
条目。添加(节点);
}
}
//将条目发送到数据网格控件
question_list.DataSource=entries.ToArray();
我不想发布这样一个“请修改代码”的问题,但我真的被卡住了。我已经尝试了一些教程(有些给出了编译错误),但没有任何帮助。我假设我使用
XmlReader
和XmlDocument
是正确的方法,因为这在每个指南中都很常见。您的枚举器ienum
只包含元素
元素。由于此节点的名称不是entry
,因此不会向条目添加任何内容
我猜您希望迭代
元素的子节点。请尝试以下操作:
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 <feed> element.
XmlNodeList feed = doc.GetElementsByTagName("feed");
XmlNode feedNode = feed.Item(0);
// Get the child nodes of the <feed> element.
XmlNodeList childNodes = feedNode.ChildNodes;
IEnumerator ienum = childNodes.GetEnumerator();
List<XmlNode> entries = new List<XmlNode>();
// 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();
const string最近的问题=”http://stackoverflow.com/feeds";
XmlTextReader;
xml文档文档;
//加载馈送
reader=新的XmlTextReader(最近的问题);
//reader.MoveToContent();
//将提要添加到文档中
doc=新的XmlDocument();
文件加载(读卡器);
//获取元素。
XmlNodeList提要=doc.GetElementsByTagName(“提要”);
XmlNode feedNode=feed.Item(0);
//获取元素的子节点。
XmlNodeList childNodes=feedNode.childNodes;
IEnumerator ienum=childNodes.GetEnumerator();
列表条目=新列表();
//迭代子节点。
while(ienum.MoveNext())
{
XmlNode节点=(XmlNode)ienum.Current;
如果(node.Name==“条目”)
{
条目。添加(节点);
}
}
//将条目发送到数据网格控件
question_list.DataSource=entries.ToArray();
你能说出你所得到的错误和它所做的不正确吗?你可以考虑使用它。@ SimuCal:它只是不提供任何数据,没有错误。布莱恩:我看了看,以为这只是为了创建提要。我将尝试一下。谢谢,这确实帮助我了解了如何迭代XML节点!