Udostępnij za pośrednictwem


Usuwanie atrybutów z węzła elementu w ramach modelu DOM

Istnieje wiele sposobów usuwania atrybutów. Jedną z technik jest usunięcie ich z kolekcji atrybutów. W tym celu są wykonywane następujące kroki:

  1. Pobierz kolekcję atrybutów z elementu przy użyciu polecenia XmlAttributeCollection attrs = elem.Attributes;.

  2. Usuń atrybut z kolekcji atrybutów przy użyciu jednej z trzech metod:

    • Użyj Remove polecenia , aby usunąć określony atrybut.

    • Użyj polecenia RemoveAll , aby usunąć wszystkie atrybuty z kolekcji i pozostawić element bez atrybutów.

    • Użyj RemoveAt polecenia , aby usunąć atrybut z kolekcji atrybutów przy użyciu jego numeru indeksu.

Poniższe metody usuwają atrybuty z węzła elementu.

Kolejną alternatywą jest pobranie elementu, pobranie atrybutu z kolekcji atrybutów i bezpośrednie usunięcie węzła atrybutu. Aby uzyskać atrybut z kolekcji atrybutów, możesz użyć nazwy , XmlAttribute attr = attrs["attr_name"];indeksu XmlAttribute attr = attrs[0];lub przez pełne kwalifikacje nazwy z przestrzeni nazw XmlAttribute attr = attrs["attr_localName", "attr_namespace"].

Niezależnie od metody używanej do usuwania atrybutów istnieją specjalne ograniczenia dotyczące usuwania atrybutów zdefiniowanych jako atrybuty domyślne w definicji typu dokumentu (DTD). Nie można usunąć atrybutów domyślnych, chyba że element, do którego należy, zostanie usunięty. Atrybuty domyślne są zawsze obecne dla elementów, które mają zadeklarowane atrybuty domyślne. Usunięcie atrybutu domyślnego z XmlAttributeCollection elementu lub z XmlElement wyników powoduje wstawienie atrybutu zastępczego do XmlAttributeCollection elementu, zainicjowane do wartości domyślnej, która została zadeklarowana. Jeśli masz element zdefiniowany jako <book att1="1" att2="2" att3="3"></book>, masz book element z zadeklarowanymi trzema atrybutami domyślnymi. Implementacja modelu obiektów dokumentów XML (DOM) gwarantuje, że o ile ten book element istnieje, ma te trzy atrybuty att1domyślne , att2i att3.

W przypadku wywołania za pomocą XmlAttributeRemoveAll metody metoda ustawia wartość atrybutu na String.Empty, ponieważ atrybut nie może istnieć bez wartości.

Zobacz też