printing list of xml nodes in c#

送分小仙女□ 提交于 2020-06-11 09:44:13

问题


I am need bit of help on getting list of xml nodes and printing them.

My code is as below:

        XmlDocument doc = new XmlDocument();
        doc.Load("To44532.xml");
        XmlNode xn = doc.DocumentElement;
        foreach (XmlNode xn2 in xn)
        { Console.WriteLine(xn2); }
        Console.ReadLine();

I am new to c# please accept my apologies in advance for asking this basic question. So I wanted full list of nodes and then printing them in output.

I ended up with this piece of code because I wanted to debug one of the other code. The idea was that I wanted to display specific nodes in winforms. I tried if statement e.g. :

        foreach (XmlNode node in doc.DocumentElement)
        {
            if (node.Equals("DbtItm"))
            { ..... }

Could you please advise whats the best way to achieve it?


回答1:


You can select XML Nodes by Name.

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
 <book category="cooking">
   <title lang="en">Everyday Italian</title>
   <author>Giada De Laurentiis</author>
   <year>2005</year>
   <price>30.00</price>
</book>
<book category="children">
   <title lang="en">Harry Potter</title>
   <author>J K. Rowling</author>
   <year>2005</year>
   <price>29.99</price>
</book>
<book category="web">
   <title lang="en">Learning XML</title>
   <author>Erik T. Ray</author>
   <year>2003</year>
   <price>39.95</price>
 </book>
</bookstore>

For example to get only book author and book year from as above xml.

        XmlDocument xml = new XmlDocument();
        xml.Load("XMLFile1.xml"); 

        XmlNodeList xnList = xml.SelectNodes("/bookstore/book");
        foreach (XmlNode xn in xnList)
        {
            string author = xn["author"].InnerText;
            string year = xn["year"].InnerText;
            Console.WriteLine(author+"-"+year);
        }


来源:https://stackoverflow.com/questions/47864860/printing-list-of-xml-nodes-in-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!