.NET 3.x XML: Пропустить блок и перейти к следующему после обработки - C#
Формулировка задачи:
Добрый день. Имеется следующий XML-документ, с которого я хочу прочитать информацию и засунуть всю инфу в Excel.
Хочу вытащить данные из такого документа по каждому блоку employee: name
Есть такой код:
Все бы хорошо, но этот код пропускает один блок и вытаскивает мне только из второго. Итого я в richTextBox получаю половину сотрудников.
Почему так происходит может кто объяснит?
<employees>
<employee>
<id>61</id>
<name>Ivanov</name>
<age>9</age>
<info>NO</info>
<phone>123456</phone>
</employee>
<employee>
<id>62</id>
<name>Petrov</name>
<age>10</age>
<info>NO</info>
<phone>789456</phone>
</employee>
…
Other Employees
…
</employees>
XmlReader reader = XmlReader.Create(employees.xml);
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name == "employee")
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(reader.ReadOuterXml());
XmlNode n = xmlDoc.SelectSingleNode("employee");
richTextBox1.Text += n.SelectSingleNode("name").InnerText + Environment.NewLine;
}
}
}Решение задачи: «.NET 3.x XML: Пропустить блок и перейти к следующему после обработки»
textual
Листинг программы
XmlReader reader = XmlReader.Create(Employees.xml);
XmlDocument xml = new XmlDocument();
xml.Load(reader);
foreach (XmlElement element in xml.GetElementsByTagName("employee"))
{
richTextBox1.Text += element.SelectSingleNode("name").InnerText;
}
}