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