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);