XNode.NodesBeforeSelf Method
Definition
Returns a collection of the sibling nodes before this node, in document order.
public:
System::Collections::Generic::IEnumerable<System::Xml::Linq::XNode ^> ^ NodesBeforeSelf();
public System.Collections.Generic.IEnumerable<System.Xml.Linq.XNode> NodesBeforeSelf ();
member this.NodesBeforeSelf : unit -> seq<System.Xml.Linq.XNode>
Public Function NodesBeforeSelf () As IEnumerable(Of XNode)
Public Iterator Function NodesBeforeSelf () As IEnumerable(Of XNode)
Returns
An IEnumerable<T> of XNode of the sibling nodes before this node, in document order.
Examples
The following example creates an XML tree, and then queries the tree using this axis method.
XElement xmlTree = new XElement("Root",
new XText("Text content."),
new XElement("Child1", "child1 content"),
new XElement("Child2", "child2 content"),
new XText("More text content."),
new XElement("child3", "child3 content")
);
XElement child = xmlTree.Element("Child2");
IEnumerable<XNode> nodes =
from node in child.NodesBeforeSelf()
select node;
foreach (XNode node in nodes)
Console.WriteLine("Node type: {0} {1}",
node.NodeType,
node.NodeType == XmlNodeType.Text ? (node as XText).Value : "");
Dim xmlTree As XElement = New XElement("Root", _
New XText("Text content."), _
New XElement("Child1", "child1 content"), _
New XElement("Child2", "child2 content"), _
New XText("More text content."), _
New XElement("child3", "child3 content") _
)
Dim child As XElement = xmlTree.Element("Child2")
Dim nodes As IEnumerable(Of XNode) = _
From node In child.NodesBeforeSelf() _
Select node
For Each node As XNode In nodes
Dim s As String = ""
If node.NodeType = XmlNodeType.Text Then
s = DirectCast(node, XText).Value
End If
Console.WriteLine("Node type: {0} {1}", node.NodeType, s)
Next
This example produces the following output:
Node type: Text Text content.
Node type: Element
Remarks
This method only includes siblings in the returned collection. It does not include descendants.
This method uses deferred execution.