C# 从解析数据写入XML

C# 从解析数据写入XML,c#,html-agility-pack,C#,Html Agility Pack,我写了一段代码,可以解析网站顶部导航的链接 private string url = "http://www.blah.com/"; private HtmlWeb web; private HtmlDocument doc; private string topNavName = ""; private string topNavUrl = ""; public void Setup() { try {

我写了一段代码,可以解析网站顶部导航的链接

private string url = "http://www.blah.com/";
    private HtmlWeb web;
    private HtmlDocument doc;

    private string topNavName = "";
    private string topNavUrl = "";

    public void Setup()
    {
        try
        {
            web = new HtmlWeb();
            doc = web.Load(url);
            web.AutoDetectEncoding = true;
            TopCats();
        }
        catch (Exception e)
        {
            Console.WriteLine("There has been an issue loading url {0}", e);
        }
    }

    private List<Catalogue> TopCats()
    {
      List<Catalogue> GetTop = new List<Catalogue>();
        try
        {
            HtmlNodeCollection TopNode = doc.DocumentNode.SelectNodes("//*[@id='TopTabs1_tabs']/li/span/a");
            if (TopNode != null)
            {
                foreach (HtmlNode Topitem in TopNode)
                {
                    topNavName = Topitem.InnerText;
                    topNavUrl = url + Topitem.Attributes["href"].Value;

                    Catalogue xmltopcat = new Catalogue();
                    xmltopcat.indentifier = "here";
                    xmltopcat.name = topNavName;
                    xmltopcat.url = topNavUrl;
                    xmltopcat.description = "";

                    Console.WriteLine("Category >> {0}",topNavName);
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("There has been an issue Top Nav {0}", e);
        }
        return GetTop;
    }
}
我真的不确定是否要创建一个XML文档——我已经尝试了一些方法,但我真的不确定我在做什么。我仍在学习C语言,这是我第一次使用XML。

您可以使用。首先将所有
目录
存储到
列表中

Catalogue xmltopcat = new Catalogue();
xmltopcat.indentifier = "here";
xmltopcat.name = topNavName;
xmltopcat.url = topNavUrl;
xmltopcat.description = "";
GetTop.Add(xmltopcat); // <-- add current catalogue to the list
或者您可以使用
XmlSerializer

FileStream fs = new FileStream("records.xml",FileMode.OpenOrCreate,FileAccess.Write);
XmlSerializer serializer = new XmlSerializer(typeof(List<Catalogue>),new XmlRootAttribute("Catalogues"));
serializer.Serialize(fs,list);
FileStream fs=newfilestream(“records.xml”,FileMode.OpenOrCreate,FileAccess.Write);
XmlSerializer serializer=新的XmlSerializer(typeof(列表),新的XmlRootAttribute(“目录”);
serializer.Serialize(fs,list);
var list = TopCats();

XElement xDoc  = new XElement("Catalogues", 
                              list.Select(c => new XElement("Catalogue",
                              new XElement("indentifier",c.indentifier)
                              new XElement("name",c.name)
                              new XElement("url",c.url)
                              new XElement("description",c.description)));
xDoc.Save("savepath");
FileStream fs = new FileStream("records.xml",FileMode.OpenOrCreate,FileAccess.Write);
XmlSerializer serializer = new XmlSerializer(typeof(List<Catalogue>),new XmlRootAttribute("Catalogues"));
serializer.Serialize(fs,list);