2

我正在使用 System.Xml 读取 C# 中的 xml 文件。首先,我打开文件(本地)...并使用 foreach 获取值,如下所示:

XmlNodeList titles = xmlDoc.GetElementsByTagName("title");
foreach (XmlNode title in titles)
{
rowNews = new ListViewItem();
rowNews.Text = (title.ChildNodes[0].Value);
listView1.Items.Add(rowNews);
}

问题是,我的文件中有许多名为 title 的 rss 标签,我只想阅读里面的那些标签<entry></entry>

4

5 回答 5

7

通常在这种情况下使用XPath更容易,因此您的代码看起来像这样:

XmlNodeList titles = xmlDoc.SelectNodes("//entry/title");
foreach (XmlNode title in titles)
{
rowNews = new ListViewItem();
rowNews.Text = (title.ChildNodes[0].Value);
listView1.Items.Add(rowNews);
}
于 2010-10-12T16:21:36.417 回答
1

我建议XDocumentSystem.Xml.Linq命名空间中使用。

然后你可以简单地写document.Elements("entry").Elements("title")

于 2010-10-12T16:24:32.803 回答
0

这里有一个提示:看看你是如何遍历第一个“title”节点的。

于 2010-10-12T16:13:59.130 回答
0

您是否尝试过类似条目/标题之类的东西作为您的 xpath?

于 2010-10-12T16:17:42.560 回答
0

请参阅ParentNodeLocalName属性:

if (title.ParentNode.LocalName == "entry") { ... }
于 2010-10-12T16:19:14.830 回答