Поделиться через


Удаление атрибутов из узла элемента в DOM

Существует много способов удаления атрибутов. Один из них заключается в их удалении из коллекции атрибутов. Для этого выполняются следующие шаги.

  1. Возвратите коллекцию атрибутов из элемента с помощью кода XmlAttributeCollection attrs = elem.Attributes;.

  2. Удалите атрибут из коллекции атрибутов, используя один из трех методов.

    • Метод Remove удаляет указанный атрибут.

    • Метод RemoveAll удаляет все атрибуты из коллекции, оставляя элемент без атрибутов.

    • Метод RemoveAt удаляет атрибут из коллекции, используя его индексный номер.

Следующие методы удаляют атрибуты из узла элемента.

  • Метод RemoveAllAttributes удаляет коллекцию атрибутов.

  • Метод RemoveAttribute удаляет из коллекции один атрибут по заданному имени.

  • Метод RemoveAttributeAt удаляет из коллекции один атрибут по индексному номеру.

Чтобы удалить атрибут, можно также вернуть элемент, вернуть атрибут из коллекции атрибутов и напрямую удалить узел атрибута. Чтобы вернуть атрибут из коллекции атрибутов, можно использовать имя XmlAttribute attr = attrs["attr_name"];, индекс XmlAttribute attr = attrs[0]; или полное имя, включая пространство имен XmlAttribute attr = attrs["attr_localName", "attr_namespace"].

Независимо от способа удаления атрибута, существуют специальные ограничения на удаление атрибутов, определенные в определении DTD как атрибуты по умолчанию. Атрибуты по умолчанию нельзя удалять, если не удален элемент, которому они принадлежат. Атрибуты по умолчанию всегда присутствуют в элементах, для которых декларированы атрибуты по умолчанию. Удаление атрибута по умолчанию из коллекции XmlAttributeCollection или XmlElement приводит к вставке замещающего атрибута в коллекцию XmlAttributeCollection элемента и инициализации декларированного значения по умолчанию. Если существует элемент, определенный как <book att1="1" att2="2" att3="3"></book>, то существует элемент book с тремя атрибутами, объявленными по умолчанию. Реализация модели XML DOM гарантирует, что, пока существует элемент book, он имеет три атрибута по умолчанию: att1, att2 и att3.

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

См. также