2016-07-11 3 views
0

Я хочу прочитать HTML-файл с помощью XMLReader. Поэтому я написал несколько кодов, но он генерирует только XmlException. Поэтому, пожалуйста, дайте мне какое-нибудь предложение о том, как читать HTML-файл (и теги) по строкам с помощью C#.Как читать Html-файлы с помощью XmlReader

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-теги линией. Помимо моего ожидания, он выбрасывает только Exception.

ответ

1

Я нахожу ответ для вышеуказанного вопроса. Следующие коды вы можете использовать.

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

XmlRederSettings включен набор возможностей XmlReader. В этом файле Html есть DOCTYPe, для этого избегаем использования Dtdprocessing.Ignore.

Смежные вопросы