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

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

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

Добрый день. Имеется следующий XML-документ, с которого я хочу прочитать информацию и засунуть всю инфу в Excel.
                    <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>
Хочу вытащить данные из такого документа по каждому блоку employee: name Есть такой код:
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;

                    }
                    
                }
 
            }
Все бы хорошо, но этот код пропускает один блок и вытаскивает мне только из второго. Итого я в richTextBox получаю половину сотрудников. Почему так происходит может кто объяснит?

Решение задачи: «.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;
 
            }
 
            }

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


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

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

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