Чтение XML файла с XmlTextReader, исправить приведенный код - C#

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

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

Здравствуйте! Пытаюсь прочитать атрибуты из хмл-файла, но ничего не выходит. Ошибок не выкидывает, атрибуты не читает. Чтение вот в этом куске:
Листинг программы
  1. ArrayList attributes = new ArrayList();
  2. XmlDocument doc = new XmlDocument();
  3. XmlTextReader reader = null;
  4. reader = new XmlTextReader("ObjectsAssociation.xml");
  5. reader.WhitespaceHandling = WhitespaceHandling.None;
  6. while(reader.Read())
  7. if (reader.NodeType==XmlNodeType.Element)
  8. if (reader.Name == "Object")
  9. {
  10. Object_attr ob_attr = new Object_attr(reader.GetAttribute("AdkID"), reader.GetAttribute("AdkName"), reader.GetAttribute("AdkGroup"));
  11. while (reader.Read() && reader.Name == "uniobj")
  12. ob_attr.AddObj(reader.GetAttribute("UniName"), reader.GetAttribute("UniID"), reader.GetAttribute("bydiag"));
  13. attributes.Add(ob_attr);
  14. }
  15. foreach (Object_attr ob in attributes)
  16. {
  17. Console.Write(string.Format("AdkID=",ob.adk_id));
  18. Console.Write(string.Format("AdkName=", ob.adk_name));
  19. Console.WriteLine(string.Format("AdkGroup=", ob.adk_group));
  20. foreach (UniObjects uob in ob.obj_attr)
  21. {
  22. Console.WriteLine(string.Format("UniName=", uob.uni_name));
  23. Console.WriteLine(string.Format("UniID=", uob.uni_id));
  24. Console.WriteLine(string.Format("bydiag=", uob.by_diag));
  25. }
  26. }
Что не так, подскажите? Файл хмл лежит в каталоге Debug. При необходимости могу предоставить полный листинг
Скорее всего, ошибка в исходных данных. В хмл-файле такой формат:
Листинг программы
  1. <Object AdkID="12" AdkName="МЭ3" AdkGroup="6">
  2. <!-- ПХМ3/ОХМ3 -->
  3. <uniobj UniName="ПХМ3/ОХМ3" UniID="44" bydiag="1" />
  4. </Object>
И не выполняется условие
Листинг программы
  1. while (reader.Read() && reader.Name == "uniobj")
Потому что присутствует комментарий. Как его обойти?

Решение задачи: «Чтение XML файла с XmlTextReader, исправить приведенный код»

textual
Листинг программы
  1. while(reader.Read())  
  2.  
  3.                 if (reader.NodeType==XmlNodeType.Element)
  4.                     if (reader.Name == "Object")
  5.                     {
  6.                         Object_attr ob_attr = new Object_attr(reader.GetAttribute("AdkID"), reader.GetAttribute("AdkName"), reader.GetAttribute("AdkGroup"));
  7.  
  8.                        if (reader.HasAttributes)
  9.                             while (reader.MoveToNextAttribute())
  10.                             {
  11.                                 ob_attr.AddObj(reader.GetAttribute("UniName"), reader.GetAttribute("UniID"), reader.GetAttribute("bydiag"));
  12.                             }
  13.                         attributes.Add(ob_attr);
  14.                     }

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


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

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

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

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

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

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