Compartilhar via


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:

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

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

    • Use Remove para remover um atributo específico.

    • Use RemoveAll para remover todos os atributos de coleção e para permitir que o elemento sem atributos.

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

Os seguintes métodos remove os atributos do nó do elemento.

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.

Confira também