Domanda

Sto utilizzando System.Xml di leggere un file XML in C #. In primo luogo ho aperto il file (in loco) ... e l'uso foreach per ottenere i valori, in questo modo:

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

Il problema è che ho molti tag rss chiamati titolo nel mio file, mi piacerebbe leggere solo quelli che cosa sono <entry></entry> dentro?

È stato utile?

Soluzione

ParentNode e LocalName proprietà:

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

Altri suggerimenti

Di solito è più facile da usare XPaths in questo caso, in modo che il codice sarà qualcosa in questo modo:

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

Io suggerisco di usare XDocument nello spazio dei nomi System.Xml.Linq.

Poi si può semplicemente scrivere document.Elements("entry").Elements("title")

Hai provato qualcosa di simile di entrata / titolo come la tua XPath?

Ecco un suggerimento: un'occhiata a come si iterate attraverso il primo nodo "titolo"

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top