通过C#,XmlDocument.LoadXml解析网页

时间:2011-12-16 18:57:31

标签: c# parsing web xmldocument

我正在尝试下载网页并解析它。我需要到达html文档的每个节点。所以我使用WebClient进行下载,效果很好。然后我使用以下代码段来解析文档:

 WebClient client = new WebClient();

 Stream data = client.OpenRead("http://web.cs.hacettepe.edu.tr/~bil339/");
 StreamReader reader = new StreamReader(data);
 string xml = reader.ReadToEnd();

 data.Close();
 reader.Close();
 XmlDocument xmlDoc = new XmlDocument();
 xmlDoc.loadXml(xml);

在最后一行,程序等待一段时间,然后崩溃。它说HTML代码中存在错误,这不是预期的,不应该在这里,等等。 有什么建议来解决这个问题其他解析HTML代码的技术是受欢迎的(当然是在C#中。)

1 个答案:

答案 0 :(得分:7)

使用HTMLAgilityPack解析HTML。格式良好的HTML不是XML,因此无法解析。例如,它缺少所有XML文件所需的<?xml version="1.0" encoding="UTF-8"?>前导码。 HTML Agility Pack更加宽容。