How To Select XML Nodes by Attribute Value

This example shows how to select nodes from XML document by attribute value. Use method XmlNode.Selec­tNodes to get list of nodes selected by the XPath expression. Suppose we have this XML file.
<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);
}

3 comments:

  1. It is short and very informative.

    ReplyDelete
  2. Should I use RemoveAll() if I want to delete the node?

    ReplyDelete
  3. Super. Thank you very much. Simple and good.

    ReplyDelete