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