Чтение XML файла с XmlTextReader, исправить приведенный код - C#
Формулировка задачи:
Здравствуйте!
Пытаюсь прочитать атрибуты из хмл-файла, но ничего не выходит. Ошибок не выкидывает, атрибуты не читает.
Чтение вот в этом куске:
Что не так, подскажите? Файл хмл лежит в каталоге Debug. При необходимости могу предоставить полный листинг
И не выполняется условие
Потому что присутствует комментарий. Как его обойти?
Листинг программы
- ArrayList attributes = new ArrayList();
- XmlDocument doc = new XmlDocument();
- XmlTextReader reader = null;
- reader = new XmlTextReader("ObjectsAssociation.xml");
- reader.WhitespaceHandling = WhitespaceHandling.None;
- while(reader.Read())
- if (reader.NodeType==XmlNodeType.Element)
- if (reader.Name == "Object")
- {
- Object_attr ob_attr = new Object_attr(reader.GetAttribute("AdkID"), reader.GetAttribute("AdkName"), reader.GetAttribute("AdkGroup"));
- while (reader.Read() && reader.Name == "uniobj")
- ob_attr.AddObj(reader.GetAttribute("UniName"), reader.GetAttribute("UniID"), reader.GetAttribute("bydiag"));
- attributes.Add(ob_attr);
- }
- foreach (Object_attr ob in attributes)
- {
- Console.Write(string.Format("AdkID=",ob.adk_id));
- Console.Write(string.Format("AdkName=", ob.adk_name));
- Console.WriteLine(string.Format("AdkGroup=", ob.adk_group));
- foreach (UniObjects uob in ob.obj_attr)
- {
- Console.WriteLine(string.Format("UniName=", uob.uni_name));
- Console.WriteLine(string.Format("UniID=", uob.uni_id));
- Console.WriteLine(string.Format("bydiag=", uob.by_diag));
- }
- }
Скорее всего, ошибка в исходных данных. В хмл-файле такой формат:
Листинг программы
- <Object AdkID="12" AdkName="МЭ3" AdkGroup="6">
- <!-- ПХМ3/ОХМ3 -->
- <uniobj UniName="ПХМ3/ОХМ3" UniID="44" bydiag="1" />
- </Object>
Листинг программы
- while (reader.Read() && reader.Name == "uniobj")
Решение задачи: «Чтение XML файла с XmlTextReader, исправить приведенный код»
textual
Листинг программы
- while(reader.Read())
- if (reader.NodeType==XmlNodeType.Element)
- if (reader.Name == "Object")
- {
- Object_attr ob_attr = new Object_attr(reader.GetAttribute("AdkID"), reader.GetAttribute("AdkName"), reader.GetAttribute("AdkGroup"));
- if (reader.HasAttributes)
- while (reader.MoveToNextAttribute())
- {
- ob_attr.AddObj(reader.GetAttribute("UniName"), reader.GetAttribute("UniID"), reader.GetAttribute("bydiag"));
- }
- attributes.Add(ob_attr);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д