我想使用XMLReader读取HTML文件。所以我写了一些代码,但它只抛出XmlException。所以请给我任何关于如何使用C#逐行阅读HTML文件(和标签)的建议。
public class HtmlReader
{
public List<HtmlDocument> Read(string path)
{
List<HtmlDocument> html = new List<HtmlDocument>();
HtmlDocument h1 = new HtmlDocument();
using (XmlReader reader = XmlReader.Create(path.ToString()))
{
try
{
while (reader.Read())
{
if (reader.IsStartElement())
{
if (reader.Name == "title" || reader.Name == "body")
{
switch (reader.Name)
{
case "title":
if (reader.Read())
{
h1.Title = reader.Value.Trim();
}
break;
case "body":
if (reader.Read())
{
}
break;
}
}
}
}
}
catch(XmlException)
{
}
}
return html;
}
}
}
class Program
{
static void Main(string[] args)
{
HtmlReader readerObject = new HtmlReader();
List<HtmlDocument> employeeCollection = readerObject.Read("E:/workoutsPrograms/ConsoleApplication4/Table.html");
}
}
我尝试了这个,但我无法逐行阅读Html标签。除了我的期望,它只会抛出异常。
答案 0 :(得分:2)
我找到了上述问题的答案。您可以使用以下代码。
XmlReaderSettings settings = new XmlReaderSettings();
settings.DtdProcessing = DtdProcessing.Ignore;
settings.IgnoreWhitespace = true;
XmlRederSettings是XmlReader的启用集功能。在那个Html文件中有DOCTYPe,为此我们想要使用Dtdprocessing.Ignore。