Чтение 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);
}