|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.05.2018, 11:29 | #1 |
Пользователь
Регистрация: 27.05.2018
Сообщений: 46
|
Коллекцию атрибутов XML записать в List
Добрый день, всем.
Никак не могу разобраться как коллекцию атрибутов XML записать в List Используется System.XML Свойство Attributes возвращает объект XmlAttributeCollection, который представляет коллекцию атрибутов List<xxx> = new List<xxx>(Attributes); дает ошибку А как правильно делать вызов не могу найти даже на msdn |
27.05.2018, 13:47 | #2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
XmlAttributeCollection умеет только IEnumerable и не умеет Generic вариант. Соответственно нужно пробовать кастовать:
Код:
|
27.05.2018, 17:34 | #3 |
Пользователь
Регистрация: 27.05.2018
Сообщений: 46
|
Хм, попробую почитать про Cast, может подойдет.
Встречал такую вот запись Link<IEnumerable<????>> listattr = new Link<IEnumerable<????>> Но там было связано не с атрибутами XML а чем-то другим и не удалось понять что же требуется. вместо вопросом был то ли объект то ли еще что-то уже не помню... в общем тоже все валилось с ошибкой. |
27.05.2018, 19:14 | #4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
можно и без каста (точнее без linq) через цикл сделать:
Код:
|
27.05.2018, 20:37 | #5 |
Пользователь
Регистрация: 27.05.2018
Сообщений: 46
|
Через циклы пробовал, получается небольшая фигня. У меня Ноды с одинаковым именем, в которых например по 7 одинаковых атрибутов.
Если Нод 3 штуки, то должно быть attr[0][с 0 по 6], attr[1][0-6], attr[2][0-6] Если Нод 4 то появится еще attr[3][0-6] и так далее А если делал через циклы добавление в список, то получается один массив [0-6] следующая Нода [7-13] и так далеее. Такой вариант меня потом в коде не устраивает. |
27.05.2018, 21:16 | #6 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Какая исходная задача в итоге? ничего не понятно.
Код:
Если нужно разбитие по элементам, то можно как-то так: Код:
в nodes[1][0] - первый атрибут второго элемента |
27.05.2018, 22:51 | #7 |
Пользователь
Регистрация: 27.05.2018
Сообщений: 46
|
Задача сделать код чтения атрибутов универсальным, не влияющим какие имена у атрибутов и какое их количество, что-то вроде шаблона, в котором по возможности не править код и чтобы получилась какая-то структура прочитанного, чтобы легко интегрировать в следующий код, где будут использоваться эти переменные.
Завтра буду пробовать варианты, которые вы предложили, возможно какой-то подойдет. Просто сейчас использую запись в List указывая имена атрибутов типа List<string> mylist = new List<string>; в коде mylist.Add(new {attr1 = "....GetAtribute("name1").Value , ну и так далее}) Получаю примерно то, что нужно, но приходится указывать имена. Не удобно использовать данный код как шаблон. Нужен вариант без использования имен. По сообщению 2 - Attribute не содержит определения для Cast Последний раз редактировалось melky; 28.05.2018 в 10:52. |
28.05.2018, 12:32 | #8 |
Пользователь
Регистрация: 27.05.2018
Сообщений: 46
|
Пока не знаю, победил ли для реализации своей задачи но получаю массивы списков с возможностью обращения по индексам.
Код:
Код:
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с XML XmlTextWriter, List | angrystrike | C# (си шарп) | 2 | 03.01.2018 20:54 |
Как в Java вывести в консоль значения атрибутов из файла XML? | Hehabr | Общие вопросы по Java, Java SE, Kotlin | 1 | 29.04.2016 00:52 |
Записать DataGrid в XML | aliqulu | C# (си шарп) | 0 | 14.03.2014 23:53 |
проверять наличие атрибутов в xml-файле | NieL | Общие вопросы Delphi | 3 | 24.11.2010 19:31 |
помогите как записать правильно в xml | edik | БД в Delphi | 0 | 17.12.2009 15:39 |