Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 读取堆栈溢出RSS提要_C#_Xml_Feed_Xmldocument_Xmlreader - Fatal编程技术网

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节点!