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:
Obtenha a coleção de atributos do elemento usando
XmlAttributeCollection attrs = elem.Attributes;
.Remova o atributo da coleção de atributos usando um dos três métodos:
Os métodos a seguir removem atributos do nó do elemento.
Use RemoveAllAttributes para remover a coleção de atributos.
Use RemoveAttribute para remover um único atributo pelo nome da coleção.
Use RemoveAttributeAt para remover um único atributo por número de índice da coleção.
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
, att2
e 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.