Paranoid - курс от Codeby Security School

Представляем вашему вниманию курс от команды codeby - "Комплекс мер по защите персональных данных, анонимности в интернете и не только" Подробнее ...


Атрибуты XML файла

В прошлой статье Вы узнали, как работать с элементами и узлами XML файла. В этой статье Вы узнаете, что такое атрибуты, а так же разберем основные операции с ними, такие как создание, изменение, удаление и добавление атрибута, используя язык c#.

Как упоминалось ранее, в предыдущих статьях, элементы XML файла могут иметь любое количество, неповторяющихся атрибутов, в которых Вы можете хранить различную информацию. То есть у одного элемента не может быть, к примеру, два атрибута “id”, но может быть сразу несколько атрибутов: “id”, “name”, “code” и так далее. Ещё стоит запомнить, что атрибуты xml файла заключаются в двойные кавычки.

Элемент car, содержит 1 атрибут id, который имеет значение 1.

Элемент car, содержит 2 атрибута: id и code.

Неправильно, используется повторяющийся атрибут.

Если Вы не знакомы с языком XML или не знаете, что такое xml dom, то советую прочитать статью: основы xml.

Переходим к практике.

Для начала потребуется создать пустой XML файл, содержащий один root элемент <autopark>.

В результате должно получиться вот так

XML файл

Теперь рассмотрим базовые операции с атрибутами.

Как создать атрибут XML файла

Для того чтобы создать новый атрибут можно воспользоваться методом SetAttribute класса System.Xml.XmlElement, который позволяет создавать и изменять атрибуты элементов.

В первом примере создадим элемент “garage” с атрибутом “id”, которому присвоим значение 3.

результат

Создание нового атрибута

Как создать несколько атрибутов

Если для одного элемента необходимо создать, более одного атрибута, то в предыдущем примере просто добавим следующие строки.

Теперь будет создано 3 атрибута: “id”, “count”, “shortCode” и 3 значения: 3, 1, 456.

Ещё один способ.

Так как атрибуты xml элементов имеют имя и значение, то для хранения таких данных хорошо подходит SortedList <T,K> , где T-имя атрибута K-значение.

результат

Добавление нескольких атрибутов в XML файл

Как изменить значение атрибута XML файла

Чтобы изменить значения атрибута элемента можно воспользоваться методом SetAttribute, который мы использовали ранее, для создания атрибута.

Ещё один способ работы с атрибутами, это работа с классом XmlAttributeCollection. В нашем примере, мы сначала получаем все атрибуты элемента garage, после чего применяем метод GetNamedItem , который находит нужный нам атрибут. После чего с помощью свойства InnerText, изменим значение атрибута.

результат

как изменить атрибут у элемента XML файла

В следующем примере, показано, как можно присвоить одно и тоже значение всем атрибутам одного элемента. Сначала так же получим все атрибуты, затем при помощи метода Item(i) можно перемещаться по атрибутам, используя индекс, как в обычном массиве.

результат


Codeby Security School от Сodeby

Мы запустили свою онлайн школу по информационной безопасности. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного в курсе Paranoid


новое значение атрибута XML файла

Если же надо присвоить каждому атрибуту разные значения, то можно сделать так.

В качестве примера создадим массив, пусть он содержит два числа, каждое число &#8212; это новое значение для атрибута: “id” и “count” элемента “garage”.

результат

изменение нескольких атрибутов у одного элемента XML файла

Как удалить атрибут элемента в XML файле

Создавать и изменить атрибуты научились. Если вам были не понятны, какие-то строки кода, то можете прочитать статью: работа с элементами Xml файла, где всё подробно описано.

Чтобы удалить атрибут, нужно выполнить метод RemoveAt, в качестве параметра передаем индекс удаляемого атрибута.

результат

удаление атрибута у элемента XML файла

Как удалить несколько атрибутов

Если нужно удалить сразу оба атрибута “id” и “count” или ещё большее количество, то для такого случая подойдет метод RemoveAll.

результат

удаление нескольких атрибутов

Добавление нового атрибута

В конце ещё один пример, в котором показана работа двух методов: InsertBefore и InsertAfter, которые позволяют добавить новый атрибут элементу XML файлалибо перед, каким-то уже существующим атрибутом, либо после него.

результат

InsertBefore

InsertBefore

InsertAfter

1

Добавление в коллекцию
XmlAttributeCollection

Добавляем новый атрибут в XML элемент

Как получить значение атрибута xml файла у нескольких узлов

Дан xml файл, который содержит два узла(node) по имени car, которые в свою очередь имеют по одному атрибуту id.

текущее значение атрибута

Задача: получить значение атрибута id всех узлов car.

Результат:

Как изменить значение атрибута xml файла у нескольких узлов

Задача: увеличить текущее значение атрибута id у каждого узла на определённое значение.

Решение:

* У коллекции Attributes в скобках можно указать, как имя атрибута Attributes[&#171;id&#187;] так и index Attributes[0]

Результат:

как изменить значение атрибута xml файла

Читайте также:


Безопасная сделка с гарантом Сodeby

Гарант является доверенным посредником между Участниками при проведении сделки.​ Услуга сайта «Проведение сделок через Гаранта» предоставляется всем зарегистрированным пользователям codeby.net Подробнее ...


Похожие темы

c# Как получить названия всех месяцев?... Быстрое получение названий всех месяцев Довольно часто при разработке приложений требуется предоставить пользователю названия всех месяцев, например ...
Как написать свой V-Encryptor с самоудалением на С... Сегодня я покажу как написать простой и уже опробованный в разных местах шифровальщик (не детектится антивирусами), который после завершения процесс...
Пишем simple-кейлогер с передачей дампа по TCP на ... Всем доброго времени суток! В продолжение первой и второй частей сегодня допишем последнее - дешифратор той каши, что у нас получалась на первых ...
Используем Ducky Script в программировании Digispa... В прошлый раз я рассказал о Digispark - на столько же дешёвым, на сколько и неудачным, но всё же имеющем место быть клоне Rubber Ducky. Официально Di...
Как можно быстро получить все буквы русского или а... Как можно быстро получить все буквы русского или английского алфавита? Просматривая исходник одной из программ, увидел следующую строку: Как видно...