Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

How to Select XML Node by Name in C#

0.00/5 (No votes)
3 Aug 2016 1  
How to Select XML Node by name in C#

Introduction

Let’s first establish what the purpose of code is in the first place.

For this, the purpose of code is to "How To Select XML Node by name in C#". We use MVC(C#) for creating this demo.

We use XPath Expression for selecting the XML node.

What is XPath?

XPath is a path expressions to select nodes or node-sets in an XML document.

Using the Code

Now, we have the following XML document. Save it as demo.XML.

<info>
  <collage>
    <name>SIGMA INSTITUTE</name>
    <students>650</students>
  </collage>
  <collage>
    <name>ORCHID INSTITUTE</name>
    <students>1200</students>
  </collage>
</info>

We want to get all <collage> nodes. So, our XPath Expression is "/info/collage".

Create the Below ActionResult Method

public ActionResult Index()
{
    try
    {
        //Create A XML Document Of Response String
        XmlDocument xmlDocument = new XmlDocument();

        //Read the XML File
        xmlDocument.Load("D:\\demo.xml");

        //Create a XML Node List with XPath Expression
        XmlNodeList xmlNodeList = xmlDocument.SelectNodes("/info/collage");

        List<Info> infos = new List<Info>();

        foreach (XmlNode xmlNode in xmlNodeList)
        {
            Info info = new Info();
            info.CollageName = xmlNode["name"].InnerText;
            info.Students = xmlNode["students"].InnerText;

            infos.Add(info);
        }

        return View(infos);
    }
    catch
    {
        throw;
    }
}

Create the Below Class & Declare Properties

public class Info
{
    public string CollageName { get; set; }

    public string Students { get; set; }
}

Create a View

@model IEnumerable<SelectXMLNode.Controllers.HomeController.Info>

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        @if (Model.Count() > 0)
        {
            foreach (var item in Model)
            {
                <div class="row">
                    <div class="col-md-6">Collage: @item.CollageName </div>
                    <div class="col-md-6">Number Of Students: @item.Students</div>
                </div>
            }
        }
    </div>
</body>
</html>

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here