我正在使用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);
}

问题是,我的文件中有许多称为标题的RSS标签,我只想阅读其中的内容 <entry></entry>?

有帮助吗?

解决方案

parentnodelocalname 特性:

if (title.ParentNode.LocalName == "entry") { ... }

其他提示

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

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

我建议使用 XDocument 在里面 System.Xml.Linq 名称空间。

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

您是否尝试过诸如入口/标题作为XPATH之类的东西?

这是一个提示:查看您如何通过第一个“标题”节点迭代。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top