Compartir a través de


Cómo quitar atributos de un nodo de elementos en el DOM

Existen muchas formas de quitar atributos. Una de estas técnicas consiste en quitarlos de la colección de atributos. Para ello, hay que realizar los siguientes pasos:

  1. Obtenga la colección de atributos del elemento utilizando XmlAttributeCollection attrs = elem.Attributes;.

  2. Quite el atributo de la colección de atributos utilizando uno de estos tres métodos:

    • Utilice Remove para quitar un atributo específico.

    • Utilice RemoveAll para quitar todos los atributos de la colección y deje el elemento sin atributos.

    • Utilice RemoveAt para quitar un atributo de la colección de atributos utilizando su número de índice.

Los siguientes métodos sirven para quitar atributos del nodo de elementos.

Otra alternativa es obtener el elemento, obtener el atributo de la colección de atributos y quitar directamente el nodo de atributos. Para obtener el atributo de la colección de atributos, puede utilizar un nombre, XmlAttribute attr = attrs["attr_name"];, un índice XmlAttribute attr = attrs[0]; o certificar por completo el nombre con el espacio de nombres XmlAttribute attr = attrs["attr_localName", "attr_namespace"].

Con independencia del método que se utilice para quitar atributos, existen unas limitaciones especiales para quitar atributos que se hayan definido como predeterminados en la definición de tipo de documento (DTD). Los atributos predeterminados no se pueden quitar a menos que se quite el elemento al que pertenecen. Siempre hay atributos predeterminados para los elementos que los tengan declarados. Al quitar un atributo predeterminado de XmlAttributeCollection o de XmlElement, se inserta un atributo que lo reemplaza en el XmlAttributeCollection del elemento, que se inicializa con el valor predeterminado que se ha declarado. Si ha definido un elemento como <book att1="1" att2="2" att3="3"></book>, tendrá un elemento book con tres atributos predeterminados declarados. La implementación Document Object Model (DOM) XML garantiza que, siempre y cuando exista este elemento book, tendrá tres atributos predeterminados de att1, att2 y att3.

Al llamarlo con un XmlAttribute, el método RemoveAll establece el valor del atributo en String.Empty, ya que no puede haber un atributo sin un valor.

Vea también