.NET 3.x XML: Пропустить блок и перейти к следующему после обработки - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Имеется следующий XML-документ, с которого я хочу прочитать информацию и засунуть всю инфу в Excel.
Листинг программы
  1. <employees>
  2. <employee>
  3. <id>61</id>
  4. <name>Ivanov</name>
  5. <age>9</age>
  6. <info>NO</info>
  7. <phone>123456</phone>
  8. </employee>
  9. <employee>
  10. <id>62</id>
  11. <name>Petrov</name>
  12. <age>10</age>
  13. <info>NO</info>
  14. <phone>789456</phone>
  15. </employee>
  16. Other Employees
  17. </employees>
Хочу вытащить данные из такого документа по каждому блоку employee: name Есть такой код:
Листинг программы
  1. XmlReader reader = XmlReader.Create(employees.xml);
  2. while (reader.Read())
  3. {
  4. if (reader.NodeType == XmlNodeType.Element)
  5. {
  6. if (reader.Name == "employee")
  7. {
  8. XmlDocument xmlDoc = new XmlDocument();
  9. xmlDoc.LoadXml(reader.ReadOuterXml());
  10. XmlNode n = xmlDoc.SelectSingleNode("employee");
  11. richTextBox1.Text += n.SelectSingleNode("name").InnerText + Environment.NewLine;
  12.  
  13. }
  14. }
  15. }
Все бы хорошо, но этот код пропускает один блок и вытаскивает мне только из второго. Итого я в richTextBox получаю половину сотрудников. Почему так происходит может кто объяснит?

Решение задачи: «.NET 3.x XML: Пропустить блок и перейти к следующему после обработки»

textual
Листинг программы
  1. XmlReader reader = XmlReader.Create(Employees.xml);
  2.  
  3.             XmlDocument xml = new XmlDocument();
  4.             xml.Load(reader);
  5.            
  6.             foreach (XmlElement element in xml.GetElementsByTagName("employee"))
  7.             {
  8.  
  9.                 richTextBox1.Text += element.SelectSingleNode("name").InnerText;
  10.  
  11.             }
  12.  
  13.             }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут