XAttribute.Remove メソッド
定義
現在の属性を親要素から削除します。Removes this attribute from its parent element.
public:
void Remove();
public void Remove ();
member this.Remove : unit -> unit
Public Sub Remove ()
例外
親要素は null
です。The parent element is null
.
例
次の例では、3つの属性を持つ要素を作成します。The following example creates an element with three attributes. 次に、いずれかの属性を削除します。It then removes one of the attributes.
XElement root = new XElement("Root",
new XAttribute("Att1", "content1"),
new XAttribute("Att2", "content2"),
new XAttribute("Att3", "content3")
);
XAttribute att = root.Attribute("Att2");
att.Remove();
Console.WriteLine(root);
Dim root As XElement = <Root Att1="content1" Att2="content2" Att3="content3"/>
Dim att As XAttribute = root.Attribute("Att2")
att.Remove()
Console.WriteLine(root)
この例を実行すると、次の出力が生成されます。This example produces the following output:
<Root Att1="content1" Att3="content3" />
注釈
このメソッドを使用すると、XML ツリーを変更できます。You can use this method to modify an XML tree. このメソッドは、イベントを発生させます。This method will cause events to occur.
属性のセットを削除するシナリオは多数あります。There are many scenarios in which you might want to remove a set of attributes. プログラミングでは LINQ to XMLLINQ to XML 、そのセット内のノードを照会するときに、一連のノードを操作または変更しないようにする必要があります。In LINQ to XMLLINQ to XML programming, you should not manipulate or modify a set of nodes while you are querying for nodes in that set. 実際には、属性のセットを反復処理して削除しないようにする必要があります。In practical terms, this means that you should not iterate over a set of attributes and remove them. 代わりに、 List<T> 拡張メソッドを使用して、それらをに具体化する必要があり ToList ます。Instead, you should materialize them into a List<T> using the ToList extension method. その後、リストを反復処理して属性を削除できます。Then you can iterate over the list, removing the attributes. 詳細については、「 宣言型コードと命令型コードの混在のバグ (LINQ to XML)」を参照してください。For more information, see Mixed Declarative Code/Imperative Code Bugs (LINQ to XML).
または、属性のセットを削除する場合は、メソッドを使用することをお勧め Extensions.Remove します。Alternatively, if you want to remove a set of attributes, it is recommended that you use the Extensions.Remove method. このメソッドは、属性をリストにコピーし、リストを反復処理して属性を削除します。This method copies the attributes to a list, then iterates over the list, removing the attributes.