Школа Информационной Безопасности в Твери от Сodeby

Мы открыли свою оффлайн школу Информационной Безопасности в Твери от Сodeby. Учим без шаблонов и занудства 🙂 Подробнее ...


Атрибуты 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) можно перемещаться по атрибутам, используя индекс, как в обычном массиве.

результат



новое значение атрибута 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 файла

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



Похожие темы

Работа с элементом управления TreeView в языке c#... c# работа с элементом управления TreeView Для начала создадим Windows Forms приложение. После чего добавим на форму элемент управления TreeView, кото...
Как переименовать домен виртуальной машины KVM (VM... Как переименовать виртуальную машину на основе KVM с foo на bar, используя опцию командной строки virsh в Linux? Существует два способа переименования...
DOM — Объектная модель документа для работы ... DOM часть первая В состав библиотеки базовых классов (BCL) платформы .NET Framework входит сборка System.Xml.dll, в которой хранится реализация техно...
c# Как добавить xml узел ? Как добавить новый узел в xml документе? Продолжаем работу с технологией Linq to XML и сегодня Вы узнаете, как добавить xml узел в xml документе. До...
В чём отличие между методом Nodes и Descendants?... В чём разница между методом Nodes и Descendants? В этой статье хочу рассказать про метод Descendants и показать его отличие от метода Nodes при работ...