How do I read and parse an XML file in C#?

后端 未结 11 2155
庸人自扰
庸人自扰 2020-11-21 23:03

How do I read and parse an XML file in C#?

11条回答
  •  栀梦
    栀梦 (楼主)
    2020-11-21 23:39

    Here's an application I wrote for reading xml sitemaps:

    using System;
    using System.Collections.Generic;
    using System.Windows.Forms; 
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.IO;
    using System.Data;
    using System.Xml;
    
    namespace SiteMapReader
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Please Enter the Location of the file");
    
                // get the location we want to get the sitemaps from 
                string dirLoc = Console.ReadLine();
    
                // get all the sitemaps 
                string[] sitemaps = Directory.GetFiles(dirLoc);
                StreamWriter sw = new StreamWriter(Application.StartupPath + @"\locs.txt", true);
    
                // loop through each file 
                foreach (string sitemap in sitemaps)
                {
                    try
                    {
                        // new xdoc instance 
                        XmlDocument xDoc = new XmlDocument();
    
                        //load up the xml from the location 
                        xDoc.Load(sitemap);
    
                        // cycle through each child noed 
                        foreach (XmlNode node in xDoc.DocumentElement.ChildNodes)
                        {
                            // first node is the url ... have to go to nexted loc node 
                            foreach (XmlNode locNode in node)
                            {
                                // thereare a couple child nodes here so only take data from node named loc 
                                if (locNode.Name == "loc")
                                {
                                    // get the content of the loc node 
                                    string loc = locNode.InnerText;
    
                                    // write it to the console so you can see its working 
                                    Console.WriteLine(loc + Environment.NewLine);
    
                                    // write it to the file 
                                    sw.Write(loc + Environment.NewLine);
                                }
                            }
                        }
                    }
                    catch { }
                }
                Console.WriteLine("All Done :-)"); 
                Console.ReadLine(); 
            }
    
            static void readSitemap()
            {
            }
        }
    }
    

    Code on Paste Bin http://pastebin.com/yK7cSNeY

提交回复
热议问题