Odebrání atributů z uzlu elementu v modelu DOM
Existuje mnoho způsobů, jak odebrat atributy. Jednou z technik je jejich odebrání z kolekce atributů. Provedete to takto:
Získejte kolekci atributů z elementu pomocí
XmlAttributeCollection attrs = elem.Attributes;
.Odeberte atribut z kolekce atributů pomocí jedné ze tří metod:
Následující metody odeberou atributy z uzlu elementu.
Slouží RemoveAllAttributes k odebrání kolekce atributů.
Slouží RemoveAttribute k odebrání jednoho atributu podle názvu z kolekce.
Slouží RemoveAttributeAt k odebrání jednoho atributu podle čísla indexu z kolekce.
Další alternativou je získat prvek, získat atribut z kolekce atributů a odebrat uzel atributu přímo. Pokud chcete získat atribut z kolekce atributů, můžete použít název, XmlAttribute attr = attrs["attr_name"];
index XmlAttribute attr = attrs[0];
nebo plně kvalifikovaný název s oborem názvů XmlAttribute attr = attrs["attr_localName", "attr_namespace"]
.
Bez ohledu na metodu použitou k odebrání atributů existují zvláštní omezení pro odebrání atributů, které jsou definovány jako výchozí atributy v definici typu dokumentu (DTD). Výchozí atributy nelze odebrat, pokud není odebrán prvek, ke kterým patří. Výchozí atributy jsou vždy k dispozici pro elementy, které mají deklarované výchozí atributy. Odebrání výchozího atributu XmlAttributeCollection z nebo z XmlElement výsledků nahrazení atributu vloženého do XmlAttributeCollection elementu inicializovaného na výchozí hodnotu, která byla deklarována. Pokud máte prvek definovaný jako <book att1="1" att2="2" att3="3"></book>
, pak máte book
prvek se třemi výchozími atributy deklarované. Implementace modelu DOM (Document Object Model) XML zaručuje, že pokud tento book
prvek existuje, má tyto tři výchozí atributy att1
, att2
a att3
.
Při zavolání pomocí XmlAttributemetody RemoveAll nastaví hodnotu atributu String.Empty, protože atribut nemůže existovat bez hodnoty.