XElement Class

Definition

Represents an XML element. See XElement Class Overview and the Remarks section on this page for usage information and examples.

public ref class XElement : System::Xml::Linq::XContainer, System::Xml::Serialization::IXmlSerializable
public ref class XElement : System::Xml::Linq::XContainer
public class XElement : System.Xml.Linq.XContainer, System.Xml.Serialization.IXmlSerializable
public class XElement : System.Xml.Linq.XContainer
type XElement = class
    inherit XContainer
    interface IXmlSerializable
type XElement = class
    inherit XContainer
Public Class XElement
Inherits XContainer
Implements IXmlSerializable
Public Class XElement
Inherits XContainer
Inheritance
Implements

Examples

The following example creates an XML tree. The content of the new element comes from a LINQ query.

XElement xmlTree1 = new XElement("Root",  
    new XElement("Child1", 1),  
    new XElement("Child2", 2),  
    new XElement("Child3", 3),  
    new XElement("Child4", 4),  
    new XElement("Child5", 5),  
    new XElement("Child6", 6)  
);  

XElement xmlTree2 = new XElement("Root",  
    from el in xmlTree1.Elements()  
    where((int)el >= 3 && (int)el <= 5)  
    select el  
);  
Console.WriteLine(xmlTree2);  
Dim xmlTree1 As XElement = _  
        <Root>  
            <Child1>1</Child1>  
            <Child2>2</Child2>  
            <Child3>3</Child3>  
            <Child4>4</Child4>  
            <Child5>5</Child5>  
            <Child6>6</Child6>  
        </Root>  

Dim xmlTree2 As XElement = _   
    <Root>  
        <%= From el In xmlTree1.Elements() _  
            Where el.Value >= 3 And el.Value <= 5 _  
            Select el %>  
    </Root>  

Console.WriteLine(xmlTree2)  

This example produces the following output:

<Root>  
  <Child3>3</Child3>  
  <Child4>4</Child4>  
  <Child5>5</Child5>  
</Root>  

The following is the same example, but in this case the XML is in a namespace. For more information, see Work with XML Namespaces.

XNamespace aw = "http://www.adventure-works.com";  
XElement xmlTree1 = new XElement(aw + "Root",  
    new XElement(aw + "Child1", 1),  
    new XElement(aw + "Child2", 2),  
    new XElement(aw + "Child3", 3),  
    new XElement(aw + "Child4", 4),  
    new XElement(aw + "Child5", 5),  
    new XElement(aw + "Child6", 6)  
);  

XElement xmlTree2 = new XElement(aw + "Root",  
    from el in xmlTree1.Elements()  
    where((int)el >= 3 && (int)el <= 5)  
    select el  
);  
Console.WriteLine(xmlTree2);  
Imports <xmlns="http://www.adventure-works.com">  

Module Module1  
    Sub Main()  
        Dim xmlTree1 As XElement = _  
            <Root>  
                <Child1>1</Child1>  
                <Child2>2</Child2>  
                <Child3>3</Child3>  
                <Child4>4</Child4>  
                <Child5>5</Child5>  
                <Child6>6</Child6>  
            </Root>  

        Dim xmlTree2 As XElement = _   
            <Root>  
                <%= From el In xmlTree1.Elements() _  
                    Where el.Value >= 3 And el.Value <= 5 _  
                    Select el %>  
            </Root>  

        Console.WriteLine(xmlTree2)  
    End SUb  
End Module  

This example produces the following output:

<Root xmlns="http://www.adventure-works.com">  
  <Child3>3</Child3>  
  <Child4>4</Child4>  
  <Child5>5</Child5>  
</Root>  

Remarks

This class represents an XML element, the fundamental XML construct. See XElement Class Overview for other usage information.

An element has an XName, optionally one or more attributes, and can optionally contain content (for more information, see Nodes).

An XElement can contain the following types of content:

For details about the valid content of an XElement, see Valid Content of XElement and XDocument Objects.

XElement derives from XContainer, which derives from XNode.

Some XElement methods can be used from XAML. For more information, see LINQ to XML Dynamic Properties.

Constructors

XElement(XElement)

Initializes a new instance of the XElement class from another XElement object.

XElement(XName)

Initializes a new instance of the XElement class with the specified name.

XElement(XName, Object)

Initializes a new instance of the XElement class with the specified name and content.

XElement(XName, Object[])

Initializes a new instance of the XElement class with the specified name and content.

XElement(XStreamingElement)

Initializes a new instance of the XElement class from an XStreamingElement object.

Properties

BaseUri

Gets the base URI for this XObject.

(Inherited from XObject)
Document

Gets the XDocument for this XObject.

(Inherited from XObject)
EmptySequence

Gets an empty collection of elements.

FirstAttribute

Gets the first attribute of this element.

FirstNode

Gets the first child node of this node.

(Inherited from XContainer)
HasAttributes

Gets a value indicating whether this element has at least one attribute.

HasElements

Gets a value indicating whether this element has at least one child element.

IsEmpty

Gets a value indicating whether this element contains no content.

LastAttribute

Gets the last attribute of this element.

LastNode

Gets the last child node of this node.

(Inherited from XContainer)
Name

Gets or sets the name of this element.

NextNode

Gets the next sibling node of this node.

(Inherited from XNode)
NodeType

Gets the node type for this node.

Parent

Gets the parent XElement of this XObject.

(Inherited from XObject)
PreviousNode

Gets the previous sibling node of this node.

(Inherited from XNode)
Value

Gets or sets the concatenated text contents of this element.

Methods

Add(Object)

Adds the specified content as children of this XContainer.

(Inherited from XContainer)
Add(Object[])

Adds the specified content as children of this XContainer.

(Inherited from XContainer)
AddAfterSelf(Object)

Adds the specified content immediately after this node.

(Inherited from XNode)
AddAfterSelf(Object[])

Adds the specified content immediately after this node.

(Inherited from XNode)
AddAnnotation(Object)

Adds an object to the annotation list of this XObject.

(Inherited from XObject)
AddBeforeSelf(Object)

Adds the specified content immediately before this node.

(Inherited from XNode)
AddBeforeSelf(Object[])

Adds the specified content immediately before this node.

(Inherited from XNode)
AddFirst(Object)

Adds the specified content as the first children of this document or element.

(Inherited from XContainer)
AddFirst(Object[])

Adds the specified content as the first children of this document or element.

(Inherited from XContainer)
Ancestors()

Returns a collection of the ancestor elements of this node.

(Inherited from XNode)
Ancestors(XName)

Returns a filtered collection of the ancestor elements of this node. Only elements that have a matching XName are included in the collection.

(Inherited from XNode)
AncestorsAndSelf()

Returns a collection of elements that contain this element, and the ancestors of this element.

AncestorsAndSelf(XName)

Returns a filtered collection of elements that contain this element, and the ancestors of this element. Only elements that have a matching XName are included in the collection.

Annotation(Type)

Gets the first annotation object of the specified type from this XObject.

(Inherited from XObject)
Annotation<T>()

Gets the first annotation object of the specified type from this XObject.

(Inherited from XObject)
Annotations(Type)

Gets a collection of annotations of the specified type for this XObject.

(Inherited from XObject)
Annotations<T>()

Gets a collection of annotations of the specified type for this XObject.

(Inherited from XObject)
Attribute(XName)

Returns the XAttribute of this XElement that has the specified XName.

Attributes()

Returns a collection of attributes of this element.

Attributes(XName)

Returns a filtered collection of attributes of this element. Only attributes that have a matching XName are included in the collection.

CreateReader()

Creates an XmlReader for this node.

(Inherited from XNode)
CreateReader(ReaderOptions)

Creates an XmlReader with the options specified by the readerOptions parameter.

(Inherited from XNode)
CreateWriter()

Creates an XmlWriter that can be used to add nodes to the XContainer.

(Inherited from XContainer)
DescendantNodes()

Returns a collection of the descendant nodes for this document or element, in document order.

(Inherited from XContainer)
DescendantNodesAndSelf()

Returns a collection of nodes that contain this element, and all descendant nodes of this element, in document order.

Descendants()

Returns a collection of the descendant elements for this document or element, in document order.

(Inherited from XContainer)
Descendants(XName)

Returns a filtered collection of the descendant elements for this document or element, in document order. Only elements that have a matching XName are included in the collection.

(Inherited from XContainer)
DescendantsAndSelf()

Returns a collection of elements that contain this element, and all descendant elements of this element, in document order.

DescendantsAndSelf(XName)

Returns a filtered collection of elements that contain this element, and all descendant elements of this element, in document order. Only elements that have a matching XName are included in the collection.

Element(XName)

Gets the first (in document order) child element with the specified XName.

(Inherited from XContainer)
Elements()

Returns a collection of the child elements of this element or document, in document order.

(Inherited from XContainer)
Elements(XName)

Returns a filtered collection of the child elements of this element or document, in document order. Only elements that have a matching XName are included in the collection.

(Inherited from XContainer)
ElementsAfterSelf()

Returns a collection of the sibling elements after this node, in document order.

(Inherited from XNode)
ElementsAfterSelf(XName)

Returns a filtered collection of the sibling elements after this node, in document order. Only elements that have a matching XName are included in the collection.

(Inherited from XNode)
ElementsBeforeSelf()

Returns a collection of the sibling elements before this node, in document order.

(Inherited from XNode)
ElementsBeforeSelf(XName)

Returns a filtered collection of the sibling elements before this node, in document order. Only elements that have a matching XName are included in the collection.

(Inherited from XNode)
Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetDefaultNamespace()

Gets the default XNamespace of this XElement.

GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetNamespaceOfPrefix(String)

Gets the namespace associated with a particular prefix for this XElement.

GetPrefixOfNamespace(XNamespace)

Gets the prefix associated with a namespace for this XElement.

GetType()

Gets the Type of the current instance.

(Inherited from Object)
IsAfter(XNode)

Determines if the current node appears after a specified node in terms of document order.

(Inherited from XNode)
IsBefore(XNode)

Determines if the current node appears before a specified node in terms of document order.

(Inherited from XNode)
Load(Stream)

Creates a new XElement instance by using the specified stream.

Load(Stream, LoadOptions)

Creates a new XElement instance by using the specified stream, optionally preserving white space, setting the base URI, and retaining line information.

Load(String)

Loads an XElement from a file.

Load(String, LoadOptions)

Loads an XElement from a file, optionally preserving white space, setting the base URI, and retaining line information.

Load(TextReader)

Loads an XElement from a TextReader.

Load(TextReader, LoadOptions)

Loads an XElement from a TextReader, optionally preserving white space and retaining line information.

Load(XmlReader)

Loads an XElement from an XmlReader.

Load(XmlReader, LoadOptions)

Loads an XElement from an XmlReader, optionally preserving white space, setting the base URI, and retaining line information.

LoadAsync(Stream, LoadOptions, CancellationToken)

Asynchronously creates a new XElement and initializes its underlying XML tree using the specified stream, optionally preserving white space.

LoadAsync(TextReader, LoadOptions, CancellationToken)

Asynchronously creates a new XElement and initializes its underlying XML tree using the specified text reader, optionally preserving white space.

LoadAsync(XmlReader, LoadOptions, CancellationToken)

Asynchronously creates a new XElement and initializes its underlying XML tree using the specified XML reader, optionally preserving white space.

MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
Nodes()

Returns a collection of the child nodes of this element or document, in document order.

(Inherited from XContainer)
NodesAfterSelf()

Returns a collection of the sibling nodes after this node, in document order.

(Inherited from XNode)
NodesBeforeSelf()

Returns a collection of the sibling nodes before this node, in document order.

(Inherited from XNode)
Parse(String)

Load an XElement from a string that contains XML.

Parse(String, LoadOptions)

Load an XElement from a string that contains XML, optionally preserving white space and retaining line information.

Remove()

Removes this node from its parent.

(Inherited from XNode)
RemoveAll()

Removes nodes and attributes from this XElement.

RemoveAnnotations(Type)

Removes the annotations of the specified type from this XObject.

(Inherited from XObject)
RemoveAnnotations<T>()

Removes the annotations of the specified type from this XObject.

(Inherited from XObject)
RemoveAttributes()

Removes the attributes of this XElement.

RemoveNodes()

Removes the child nodes from this document or element.

(Inherited from XContainer)
ReplaceAll(Object)

Replaces the child nodes and the attributes of this element with the specified content.

ReplaceAll(Object[])

Replaces the child nodes and the attributes of this element with the specified content.

ReplaceAttributes(Object)

Replaces the attributes of this element with the specified content.

ReplaceAttributes(Object[])

Replaces the attributes of this element with the specified content.

ReplaceNodes(Object)

Replaces the children nodes of this document or element with the specified content.

(Inherited from XContainer)
ReplaceNodes(Object[])

Replaces the children nodes of this document or element with the specified content.

(Inherited from XContainer)
ReplaceWith(Object)

Replaces this node with the specified content.

(Inherited from XNode)
ReplaceWith(Object[])

Replaces this node with the specified content.

(Inherited from XNode)
Save(Stream)

Outputs this XElement to the specified Stream.

Save(Stream, SaveOptions)

Outputs this XElement to the specified Stream, optionally specifying formatting behavior.

Save(String)

Serialize this element to a file.

Save(String, SaveOptions)

Serialize this element to a file, optionally disabling formatting.

Save(TextWriter)

Serialize this element to a TextWriter.

Save(TextWriter, SaveOptions)

Serialize this element to a TextWriter, optionally disabling formatting.

Save(XmlWriter)

Serialize this element to an XmlWriter.

SaveAsync(Stream, SaveOptions, CancellationToken)

Asynchronously outputs this XElement to a Stream.

SaveAsync(TextWriter, SaveOptions, CancellationToken)

Asynchronously outputs this XElement to a TextWriter.

SaveAsync(XmlWriter, CancellationToken)

Asynchronously outputs this XElement to an XmlWriter.

SetAttributeValue(XName, Object)

Sets the value of an attribute, adds an attribute, or removes an attribute.

SetElementValue(XName, Object)

Sets the value of a child element, adds a child element, or removes a child element.

SetValue(Object)

Sets the value of this element.

ToString()

Returns the indented XML for this node.

(Inherited from XNode)
ToString(SaveOptions)

Returns the XML for this node, optionally disabling formatting.

(Inherited from XNode)
WriteTo(XmlWriter)

Write this element to an XmlWriter.

WriteToAsync(XmlWriter, CancellationToken)

Asynchronously writes this XElement to the specified writer.

WriteToAsync(XmlWriter, CancellationToken)

Writes the current node to an XmlWriter.

(Inherited from XNode)

Operators

Explicit(XElement to Boolean)

Cast the value of this XElement to a Boolean.

Explicit(XElement to DateTime)

Cast the value of this XElement to a DateTime.

Explicit(XElement to DateTimeOffset)

Cast the value of this XAttribute to a DateTimeOffset.

Explicit(XElement to Decimal)

Cast the value of this XElement to a Decimal.

Explicit(XElement to Double)

Cast the value of this XElement to a Double.

Explicit(XElement to Guid)

Cast the value of this XElement to a Guid.

Explicit(XElement to Int32)

Cast the value of this XElement to an Int32.

Explicit(XElement to Int64)

Cast the value of this XElement to an Int64.

Explicit(XElement to Nullable<Boolean>)

Cast the value of this XElement to a Nullable<T> of Boolean.

Explicit(XElement to Nullable<DateTime>)

Cast the value of this XElement to a Nullable<T> of DateTime.

Explicit(XElement to Nullable<DateTimeOffset>)

Cast the value of this XElement to a Nullable<T> of DateTimeOffset.

Explicit(XElement to Nullable<Decimal>)

Cast the value of this XElement to a Nullable<T> of Decimal.

Explicit(XElement to Nullable<Double>)

Cast the value of this XElement to a Nullable<T> of Double.

Explicit(XElement to Nullable<Guid>)

Cast the value of this XElement to a Nullable<T> of Guid.

Explicit(XElement to Nullable<Int32>)

Cast the value of this XElement to a Nullable<T> of Int32.

Explicit(XElement to Nullable<Int64>)

Cast the value of this XElement to a Nullable<T> of Int64.

Explicit(XElement to Nullable<Single>)

Cast the value of this XElement to a Nullable<T> of Single.

Explicit(XElement to Nullable<TimeSpan>)

Cast the value of this XElement to a Nullable<T> of TimeSpan.

Explicit(XElement to Nullable<UInt32>)

Cast the value of this XElement to a Nullable<T> of UInt32.

Explicit(XElement to Nullable<UInt64>)

Cast the value of this XElement to a Nullable<T> of UInt64.

Explicit(XElement to Single)

Cast the value of this XElement to a Single.

Explicit(XElement to String)

Cast the value of this XElement to a String.

Explicit(XElement to TimeSpan)

Cast the value of this XElement to a TimeSpan.

Explicit(XElement to UInt32)

Cast the value of this XElement to a UInt32.

Explicit(XElement to UInt64)

Cast the value of this XElement to a UInt64.

Events

Changed

Raised when this XObject or any of its descendants have changed.

(Inherited from XObject)
Changing

Raised when this XObject or any of its descendants are about to change.

(Inherited from XObject)

Explicit Interface Implementations

IXmlLineInfo.HasLineInfo()

Gets a value indicating whether or not this XObject has line information.

(Inherited from XObject)
IXmlLineInfo.LineNumber

Gets the line number that the underlying XmlReader reported for this XObject.

(Inherited from XObject)
IXmlLineInfo.LinePosition

Gets the line position that the underlying XmlReader reported for this XObject.

(Inherited from XObject)
IXmlSerializable.GetSchema()

Gets an XML schema definition that describes the XML representation of this object.

IXmlSerializable.ReadXml(XmlReader)

Generates an object from its XML representation.

IXmlSerializable.WriteXml(XmlWriter)

Converts an object into its XML representation.

Extension Methods

GetSchemaInfo(XElement)

Gets the post-schema-validation infoset (PSVI) of a validated element.

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

This method validates that an XElement sub-tree conforms to a specified XmlSchemaObject and an XmlSchemaSet.

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean)

Validates that an XElement sub-tree conforms to a specified XmlSchemaObject and an XmlSchemaSet, optionally populating the XML tree with the post-schema-validation infoset (PSVI).

CreateNavigator(XNode)

Creates an XPathNavigator for an XNode.

CreateNavigator(XNode, XmlNameTable)

Creates an XPathNavigator for an XNode. The XmlNameTable enables more efficient XPath expression processing.

XPathEvaluate(XNode, String)

Evaluates an XPath expression.

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Evaluates an XPath expression, resolving namespace prefixes using the specified IXmlNamespaceResolver.

XPathSelectElement(XNode, String)

Selects an XElement using a XPath expression.

XPathSelectElement(XNode, String, IXmlNamespaceResolver)

Selects an XElement using a XPath expression, resolving namespace prefixes using the specified IXmlNamespaceResolver.

XPathSelectElements(XNode, String)

Selects a collection of elements using an XPath expression.

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Selects a collection of elements using an XPath expression, resolving namespace prefixes using the specified IXmlNamespaceResolver.

ToXPathNavigable(XNode)

Returns an accessor that allows you to navigate and edit the specified XNode.

Applies to

See also