.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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д