Let’s first establish what the purpose of the code is in the first place.
For this, the purpose of the code is to "How to select XML node by name in C#". We use MVC (C#) to create this demo.
We use XPath expression to select XML node.
What is XPath?
XPath is a path expression to select the nodes or node-sets in an XML document.
Code
Now, we have the XML document given below. 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>
Create ActionResult Method shown below.
- 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;
- }
- }
- public class Info
- {
- public string CollageName { get; set; }
- public string Students { get; set; }
- }
- @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>

Tomasz PartykaPosted Apr 14, 2021, 11:56 AM
What if my xml looks like below?I know how to get to collage section. the thing is that I would like to get the address, phone and city data first and then go to collage. <info> <address>abc</address> <phone>123</phone> <city>ack</city> <collage> <name>SIGMA INSTITUTE</name> <students>650</students> </collage> <collage> <name>ORCHID INSTITUTE</name> <students>1200</students> </collage> </info> thank you for help Thomas
Amol TeliPosted Oct 18, 2018, 5:42 AM
Its working fine