Select Top XML Nodes using XPath [C#]
This example shows how to select Top N nodes of the specific name from an XML document. To select nodes from XML use method XmlNode.SelectNodes. Pass XPath expression as a parameter and the method returns a list of selected nodes. Suppose we have this XML file.
[XML]<Names> <Name>James</Name> <Name>John</Name> <Name>Robert</Name> <Name>Michael</Name> <Name>William</Name> <Name>David</Name> <Name>Richard</Name> </Names>
To get all <Name> nodes use XPath expression /Names/Name
.
If you don't want to selected all nodes, but only top 5 nodes,
you can uses XPath expression like this /Names/Name[position() <=
5]
. See the example below.
XmlDocument xml = new XmlDocument(); xml.LoadXml(str); // suppose that str string contains "<Names>...</Names>" XmlNodeList xnList = xml.SelectNodes("/Names/Name[position() <= 5]"); foreach (XmlNode xn in xnList) { Console.WriteLine(xn.InnerText); }
The output is:
James John Robert Michael William
See also
- [C#] Select XML Nodes by Name – how to get xml nodes of specific name
- [C#] Select XML Nodes by Attribute Value – how to get xml nodes by attribute value
- XmlNode.SelectNodes – MSDN – returns a list of nodes matching the XPath expression