Removendo os atributos de um nó no elemento DOM
Há várias maneiras para remover os atributos. Uma técnica é removê-los de coleção de atributo. Para fazer isso, as seguintes etapas são executadas:
Obter a coleção de atributo do elemento usando
XmlAttributeCollection attrs = elem.Attributes;
.Remova o atributo da coleção de atributo usando um dos três métodos:
Os seguintes métodos remove os atributos do nó do elemento.
Use RemoveAllAttributes para remover a coleção de atributo.
Use RemoveAttribute para remover por nome um único atributo de coleção.
Use RemoveAttributeAt para remover um único atributo pelo número de índice da coleção.
Uma alternativa é mais obter o elemento, obter o atributo de coleção de atributo, e remova diretamente o nó de atributo. Para obter o atributo de coleção de atributo, 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 os atributos, há limitações especiais em remover os atributos que são definidos como atributos padrão em Document type definition (DTD). Os atributos padrão não podem ser removidos a menos que o elemento que pertencem a for removido. Os atributos padrão são sempre atual para elementos que têm atributos padrões declarados. Removendo um padrão do atributo XmlAttributeCollection ou de resultados de XmlElement em um atributo de substituição inserido em XmlAttributeCollection do elemento inicializado, o valor padrão que foi declarado. Se você tiver um elemento definido como <book att1="1" att2="2" att3="3"></book>
, então você tiver um elemento de book
com os três atributos padrões declarados. A implementação DOM (Modelo de Objeto de Documento) de XML garante que, contanto que esse elemento book
exista, ele tenha esses três atributos padrões de att1
, att2
e att3
.
Quando chamado com XmlAttribute, o método de RemoveAll define o valor do atributo para String.Empty, como um atributo não pode existir sem um valor.