Frage

Ich verwende System.XML eine XML-Datei in C # zu lesen. Zuerst öffne ich die Datei (lokal) ... und die Verwendung foreach, um die Werte zu erhalten, wie folgt:

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

Das Problem ist, ich habe viele RSS-Tags Titel in meiner Datei mit dem Namen, ich möchte nur diejenigen lesen, was in <entry></entry> ist?

War es hilfreich?

Lösung

Siehe ParentNode und Local Eigenschaften:

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

Andere Tipps

In der Regel ist es einfacher zu benutzen XPaths in diesem Fall, so würde der Code etwas aussehen wie folgt aus:

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

Ich schlage vor, mit XDocument im System.Xml.Linq Namespace.

Dann können Sie einfach schreiben document.Elements("entry").Elements("title")

Haben Sie versucht, so etwas wie Zugangs- / Titel als XPath?

Hier ist ein Tipp: Blick auf, wie Sie Iterierte durch das erste „Titel“ node

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top