次の方法で共有


DOM の要素ノードからの属性の削除

属性を削除するには、さまざまな方法があります。 その 1 つとして、属性コレクションから属性を削除する方法があります。 属性コレクションから属性を削除するには、次の手順を実行します。

  1. XmlAttributeCollection attrs = elem.Attributes; を使用して要素から属性コレクションを取得します。

  2. 属性コレクションから属性を削除するには、次の 3 つのメソッドのいずれかを使用します。

    • Remove メソッドを使用して、特定の属性を削除する。

    • RemoveAll メソッドを使用して、コレクションからずべての属性を削除し、属性のない要素を残す。

    • RemoveAt メソッドを使用して、コレクションのインデックス番号を使用して 1 つの属性を属性コレクションから削除する。

要素ノードから属性を削除するには、次のメソッドを使用します。

  • 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要素が存在する限り、att1att2、および att3 という 3 つの既定の属性が存在することが保証されます。

XmlAttribute を呼び出した場合、RemoveAll メソッドにより、属性の値が String.Empty に設定されます。これは、値のない属性が存在できないためです。

関連項目