DOM の要素ノードからの属性の削除
属性を削除するには、さまざまな方法があります。 その 1 つとして、属性コレクションから属性を削除する方法があります。 属性コレクションから属性を削除するには、次の手順を実行します。
XmlAttributeCollection attrs = elem.Attributes;
を使用して要素から属性コレクションを取得します。属性コレクションから属性を削除するには、次の 3 つのメソッドのいずれかを使用します。
要素ノードから属性を削除するには、次のメソッドを使用します。
RemoveAllAttributes メソッドを使用して、属性のコレクションを削除する。
RemoveAttribute メソッドを使用して、名前を指定して単一の属性をコレクションから削除する。
RemoveAttributeAt メソッドを使用して、インデックス番号を指定して単一の属性をコレクションから削除する。
もう 1 つの方法として、要素を取得し、属性コレクションから属性を取得して、属性ノードを直接削除する方法もあります。 属性コレクションから属性を取得するには、名前 (XmlAttribute attr = attrs["attr_name"];
)、インデックス (XmlAttribute attr = attrs[0];
)、または名前空間を指定した完全修飾名 (XmlAttribute attr = attrs["attr_localName", "attr_namespace"]
) を使用できます。
既定の属性としてドキュメント型定義 (DTD) に定義されている属性を削除するときは、使用するメソッドにかかわらず、特別な制限が適用されます。 既定の属性は、その属性が含まれている要素を削除しない限り削除できません。 既定の属性が宣言されている要素には、常に既定の属性が存在します。 XmlAttributeCollection または XmlElement から既定の属性を削除すると、代わりの属性が要素の XmlAttributeCollection に挿入され、宣言されている既定値に初期化されます。 たとえば、<book att1="1" att2="2" att3="3"></book>
として定義された要素がある場合、book
要素には、宣言された 3 つの既定の属性が設定されます。 XML ドキュメント オブジェクト モデル (DOM) の実装によって、この book
要素が存在する限り、att1
、att2
、および att3
という 3 つの既定の属性が存在することが保証されます。
XmlAttribute を呼び出した場合、RemoveAll メソッドにより、属性の値が String.Empty に設定されます。これは、値のない属性が存在できないためです。
関連項目
.NET