Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Lamak
5 / 5 / 1
Регистрация: 17.08.2012
Сообщений: 75
1

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

08.10.2012, 12:03. Просмотров 1146. Ответов 4
Метки нет (Все метки)

Здравствуйте!
Пытаюсь прочитать атрибуты из хмл-файла, но ничего не выходит. Ошибок не выкидывает, атрибуты не читает.
Чтение вот в этом куске:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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));
                }
            }
Что не так, подскажите? Файл хмл лежит в каталоге Debug. При необходимости могу предоставить полный листинг

Добавлено через 24 минуты
Скорее всего, ошибка в исходных данных. В хмл-файле такой формат:
XML
1
2
3
4
<Object AdkID="12" AdkName="МЭ3" AdkGroup="6">
    <!-- ПХМ3/ОХМ3 -->
    <uniobj UniName="ПХМ3/ОХМ3" UniID="44" bydiag="1" />
  </Object>
И не выполняется условие
C#
1
while (reader.Read() && reader.Name == "uniobj")
Потому что присутствует комментарий. Как его обойти?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2012, 12:03
Ответы с готовыми решениями:

XMLTextReader чтение по фрагментам
Есть пример вот такого XML-файла &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;...

Чтение MP3-тегов: исправить код
Добрый день программисты! Есть вот такой кусочек кода namespace...

Чтение XML файла
Здравствуйте! Подскажите пожалуйста, почему у меня получается пустое значение...

Чтение из XML файла
Добрый день. Очень интересует работа с XML, по этой причине весь вчерашний...

Чтение XML файла
Есть XML файл такого вида. Как перенести значения coins и health в язык С# ? ...

4
Konctantin
939 / 743 / 170
Регистрация: 12.04.2009
Сообщений: 1,700
08.10.2012, 12:51 2
Используйте ХМL сериализацию
0
Lamak
5 / 5 / 1
Регистрация: 17.08.2012
Сообщений: 75
08.10.2012, 12:53  [ТС] 3
То есть?
0
Пaтрик
426 / 394 / 132
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
08.10.2012, 13:26 4
http://msdn.microsoft.com/ru-ru/library/182eeyhh.aspx
0
Lamak
5 / 5 / 1
Регистрация: 17.08.2012
Сообщений: 75
08.10.2012, 15:48  [ТС] 5
Спасибо за матчасть, но может кто конкретно с кодом поможет?

Добавлено через 1 час 49 минут
Пытаюсь следующим образом считать:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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); 
                    }
Также ничего не выводит. Неужели задача не типовая и никто не сталкивался?
0
08.10.2012, 15:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2012, 15:48

Чтение XML файла
Добрый вечер. Даю сразу исходники: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;...

Чтение из XML-файла
привет всем! очень нужна помощь по чтению XML файла............. вот сам...

Чтение XML файла
Необходимо прочитать XML файл следующего вида: &lt;?xml version=&quot;1.0&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru