Вопрос

Я использую System.xml, чтобы прочитать XML -файл в C#. Сначала я открываю файл (локально) ... и использую 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>?

Это было полезно?

Решение

Видеть ParentNode и Локальное имя характеристики:

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

Другие советы

Обычно его проще в использовании Xpaths В этом случае, так что ваш код будет выглядеть примерно так:

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