如何使用XmlReader读取Html文件

时间:2016-07-11 10:19:35

标签: c#-4.0

我想使用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标签。除了我的期望,它只会抛出异常。

1 个答案:

答案 0 :(得分:2)

我找到了上述问题的答案。您可以使用以下代码。

XmlReaderSettings settings = new XmlReaderSettings(); settings.DtdProcessing = DtdProcessing.Ignore; settings.IgnoreWhitespace = true;

XmlRederSettings是XmlReader的启用集功能。在那个Html文件中有DOCTYPe,为此我们想要使用Dtdprocessing.Ignore。