Rediger

Del via


XAttribute.Remove Method

Definition

Removes this attribute from its parent element.

public:
 void Remove();
public void Remove ();
member this.Remove : unit -> unit
Public Sub Remove ()

Exceptions

The parent element is null.

Examples

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" />  

Remarks

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. In LINQ 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. Instead, you should materialize them into a List<T> using the ToList extension method. Then you can iterate over the list, removing the attributes. For more information, see Mixed Declarative Code/Imperative Code Bugs (LINQ to XML).

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.

Applies to

See also