XNode Class

XNode Class

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

Represents the abstract concept of a node (one of: element, comment, document type, processing instruction, or text node) in the XML tree.

Namespace:  System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

public abstract class XNode : XObject

The XNode type exposes the following members.

  NameDescription
Public propertyBaseUriGets the base URI for this XObject. (Inherited from XObject.)
Public propertyDocumentGets the XDocument for this XObject. (Inherited from XObject.)
Public propertyStatic memberDocumentOrderComparerGets a comparer that can compare the relative position of two nodes.
Public propertyStatic memberEqualityComparerGets a comparer that can compare two nodes for value equality.
Public propertyNextNodeGets the next sibling node of this node.
Public propertyNodeTypeGets the node type for this XObject. (Inherited from XObject.)
Public propertyParentGets the parent XElement of this XObject. (Inherited from XObject.)
Public propertyPreviousNodeGets the previous sibling node of this node.
Top

  NameDescription
Public methodAddAfterSelf(Object)Adds the specified content immediately after this node.
Public methodAddAfterSelf(Object[])Adds the specified content immediately after this node.
Public methodAddAnnotationAdds an object to the annotation list of this XObject. (Inherited from XObject.)
Public methodAddBeforeSelf(Object)Adds the specified content immediately before this node.
Public methodAddBeforeSelf(Object[])Adds the specified content immediately before this node.
Public methodAncestors()Returns a collection of the ancestor elements of this node.
Public methodAncestors(XName)Returns a filtered collection of the ancestor elements of this node. Only elements that have a matching XName are included in the collection.
Public methodAnnotation(Type)Gets the first annotation object of the specified type from this XObject. (Inherited from XObject.)
Public methodAnnotation<T>()Get the first annotation object of the specified type from this XObject. (Inherited from XObject.)
Public methodAnnotations(Type)Gets a collection of annotations of the specified type for this XObject. (Inherited from XObject.)
Public methodAnnotations<T>()Gets a collection of annotations of the specified type for this XObject. (Inherited from XObject.)
Public methodStatic memberCompareDocumentOrderCompares two nodes to determine their relative XML document order.
Public methodCreateReader()Creates an XmlReader for this node.
Public methodCreateReader(ReaderOptions)Creates an XmlReader for this node.
Public methodStatic memberDeepEqualsCompares the values of two nodes, including the values of all descendant nodes.
Public methodElementsAfterSelf()Returns a collection of the sibling elements after this node, in document order.
Public methodElementsAfterSelf(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.
Public methodElementsBeforeSelf()Returns a collection of the sibling elements before this node, in document order.
Public methodElementsBeforeSelf(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.
Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodIsAfterDetermines if the current node appears after a specified node in terms of document order.
Public methodIsBeforeDetermines if the current node appears before a specified node in terms of document order.
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodNodesAfterSelfReturns a collection of the sibling nodes after this node, in document order.
Public methodNodesBeforeSelfReturns a collection of the sibling nodes before this node, in document order.
Public methodStatic memberReadFromCreates an XNode from an XmlReader.
Public methodRemoveRemoves this node from its parent.
Public methodRemoveAnnotations(Type)Removes the annotations of the specified type from this XObject. (Inherited from XObject.)
Public methodRemoveAnnotations<T>()Removes the annotations of the specified type from this XObject. (Inherited from XObject.)
Public methodReplaceWith(Object)Replaces this node with the specified content.
Public methodReplaceWith(Object[])Replaces this node with the specified content.
Public methodToString()Returns the indented XML for this node. (Overrides Object.ToString().)
Public methodToString(SaveOptions)Returns the XML for this node, optionally disabling formatting.
Public methodWriteToWrites this node to an XmlWriter.
Top

  NameDescription
Public eventChangedRaised when this XObject or any of its descendants have changed. (Inherited from XObject.)
Public eventChangingRaised when this XObject or any of its descendants are about to change. (Inherited from XObject.)
Top

  NameDescription
Explicit interface implemetationPrivate methodIXmlLineInfo.HasLineInfoGets a value indicating whether or not this XObject has line information. (Inherited from XObject.)
Explicit interface implemetationPrivate propertyIXmlLineInfo.LineNumberGets the line number that the underlying XmlReader reported for this XObject. (Inherited from XObject.)
Explicit interface implemetationPrivate propertyIXmlLineInfo.LinePositionGets the line position that the underlying XmlReader reported for this XObject. (Inherited from XObject.)
Top

XNode is an abstract common base class for:

XContainer is an abstract common base class for:

Objects of classes that derive from XContainer can contain children nodes.

NoteNote:

An XAttribute is not an XNode. Attributes are maintained as a list of name/value pairs on an element.

If you are writing a complex XML application, such as an XML editor or a word processor that stores content as XML, you will often work at the node level. Typical activities when working at the node level include adding nodes, deleting nodes, transforming nodes, and iterating through axes that return collections of nodes.

The following example creates an XML tree with some elements. It then creates a List<T> of XNode that contains some elements from the XML tree at random. It sorts the list, using this property to retrieve a XNodeDocumentOrderComparer, which implements the System.Collections.IComparer and System.Collections.Generic.IComparer<T> interfaces.


StringBuilder output = new StringBuilder();
XElement xmlTree = new XElement("Root",
    new XElement("Child1", 1),
    new XElement("Child2", 2),
    new XElement("Child3", 3),
    new XElement("Child4", 4),
    new XElement("Child5", 5)
);

List<XNode> nodeList = new List<XNode>();
nodeList.Add(xmlTree.Element("Child5"));
nodeList.Add(xmlTree.Element("Child3"));
nodeList.Add(xmlTree.Element("Child1"));

// Sort nodes in document order.
nodeList.Sort(XNode.DocumentOrderComparer);

foreach (XElement el in nodeList)
    output.Append(el + Environment.NewLine);

OutputTextBlock.Text = output.ToString();


Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Show:
© 2017 Microsoft