Select XML Nodes by Attribute Value [C#]
This example shows how to select nodes from XML document by attribute value. Use method XmlNode.SelectNodes to get list of nodes selected by the XPath expression. Suppose we have this XML file.
[XML]<Names> <Name type="M">John</Name> <Name type="F">Susan</Name> <Name type="M">David</Name> </Names>
To get all name nodes use XPath expression
/Names/Name
. To get only male names (to select all
nodes with specific XML attribute) use XPath expression
/Names/Name[@type='M']
.
XmlDocument xml = new XmlDocument(); xml.LoadXml(str); // suppose that str string contains "<Names>...</Names>" XmlNodeList xnList = xml.SelectNodes("/Names/Name[@type='M']"); foreach (XmlNode xn in xnList) { Console.WriteLine(xn.InnerText); }
The output is:
John David
See also
- [C#] Select XML Nodes by Name – how to get xml nodes of specific name
- [C#] Select Top XML Nodes using XPath – how to select first N nodes from XML
- XmlNode.SelectNodes – MSDN – returns a list of nodes matching the XPath expression