Dela via


Ta bort attribut från en elementnod i DOM

Det finns många sätt att ta bort attribut. En teknik är att ta bort dem från attributsamlingen. För att göra detta utförs följande steg:

  1. Hämta attributsamlingen från elementet med hjälp av XmlAttributeCollection attrs = elem.Attributes;.

  2. Ta bort attributet från attributsamlingen med någon av tre metoder:

    • Använd Remove för att ta bort ett specifikt attribut.

    • Använd RemoveAll för att ta bort alla attribut från samlingen och lämna elementet utan attribut.

    • Använd RemoveAt för att ta bort ett attribut från attributsamlingen med hjälp av dess indexnummer.

Följande metoder tar bort attribut från elementnoden.

Ett annat alternativ är att hämta elementet, hämta attributet från attributsamlingen och ta bort attributnoden direkt. Om du vill hämta attributet från attributsamlingen kan du använda ett namn, XmlAttribute attr = attrs["attr_name"];, ett index XmlAttribute attr = attrs[0];eller genom att fullständigt kvalificera namnet med namnområdet XmlAttribute attr = attrs["attr_localName", "attr_namespace"].

Oavsett vilken metod som används för att ta bort attribut finns det särskilda begränsningar för att ta bort attribut som definieras som standardattribut i dokumenttypsdefinitionen (DTD). Standardattribut kan inte tas bort om inte elementet de tillhör tas bort. Standardattribut finns alltid för element som har standardattribut deklarerade. Om du tar bort ett standardattribut från ett XmlAttributeCollection eller från XmlElement resultatet i ett ersättningsattribut som infogats i XmlAttributeCollection elementets initiering till det standardvärde som deklarerades. Om du har ett element definierat som <book att1="1" att2="2" att3="3"></book>, har du ett book element med tre standardattribut deklarerade. Implementeringen av XML-dokumentobjektmodellen (DOM) garanterar att så länge det här book elementet finns har det dessa tre standardattribut för att1, att2och att3.

När den anropas med en XmlAttributeRemoveAll anger metoden värdet för attributet till String.Empty, eftersom ett attribut inte kan finnas utan ett värde.

Se även