Partilhar via


Removendo atributos de um nó de elemento no DOM

Há muitas maneiras de remover atributos. Uma técnica é removê-los da coleção de atributos. Para fazer isso, as seguintes etapas são executadas:

  1. Obtenha a coleção de atributos do elemento usando XmlAttributeCollection attrs = elem.Attributes;.

  2. Remova o atributo da coleção de atributos usando um dos três métodos:

    • Use Remove para remover um atributo específico.

    • Use RemoveAll para remover todos os atributos da coleção e deixar o elemento sem atributos.

    • Use RemoveAt para remover um atributo da coleção de atributos usando seu número de índice.

Os métodos a seguir removem atributos do nó do elemento.

Uma outra alternativa é obter o elemento , obter o atributo da coleção de atributos e remover o nó do atributo diretamente. Para obter o atributo da coleção de atributos, você pode usar um nome, XmlAttribute attr = attrs["attr_name"];, um índice XmlAttribute attr = attrs[0];ou qualificando totalmente o nome com o namespace XmlAttribute attr = attrs["attr_localName", "attr_namespace"].

Independentemente do método usado para remover atributos, há limitações especiais na remoção de atributos que são definidos como atributos padrão na definição de tipo de documento (DTD). Os atributos padrão não podem ser removidos, a menos que o elemento ao qual pertencem seja removido. Os atributos padrão estão sempre presentes para elementos que têm atributos padrão declarados. Remover um atributo padrão de um XmlAttributeCollection ou dos XmlElement resultados em um atributo de substituição inserido XmlAttributeCollection no do elemento , inicializado com o valor padrão que foi declarado. Se você tiver um elemento definido como <book att1="1" att2="2" att3="3"></book>, terá um book elemento com três atributos padrão declarados. A implementação do DOM (Document Object Model) XML garante que, enquanto esse book elemento existir, ele terá esses três atributos padrão de att1, att2e att3.

Quando chamado com um XmlAttribute, o RemoveAll método define o valor do atributo como String.Empty, pois um atributo não pode existir sem um valor.

Consulte também