Проект codebyOS

Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

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

результат


Проект codebyOS

Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

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

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



Похожие темы

Работа с реестром Windows на языке c#... Реестр Windows и язык c# Если требуется хранить какую-то информацию, то частенько для этого используется реестр. Реестр Windows представляет собой ба...
c# Как получить названия всех месяцев?... Быстрое получение названий всех месяцев Довольно часто при разработке приложений требуется предоставить пользователю названия всех месяцев, например ...
Язык XML практика и теория Введение в язык XML Данный раздел посвящен работе с XML. В нём будет собран, как теоретический, так и практический материал. Будут рассмотрены основн...
c# DataGridView свойство ColumnCount Свойство ColumnCount элемента управления DataGridView Свойство ColumnCount элемента управления DataGridView обычно используется для решения следующих...
WebBrowser основные свойства для работы с контенто... WebBrowser работа с контентом И так, html страница была полностью загружена в control webBrowser, и теперь можно переходить к обработке полученных да...