2016-07-11 27 views
0

XMLReaderを使用してHTMLファイルを読み込みたいとします。だから私はいくつかのコードを書いたが、それはXmlExceptionだけをスローする。ですから、C#を使ってHTMLファイル(とタグ)を一行ずつ読み込む方法について私に教えてください。XmlReaderを使用して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タグラインを読み取ることができませんでした。私の期待とは別に、Exceptionだけを投げます。

答えて

1

上記の質問に対する回答が見つかりました。あなたが使用できるコードに続いて。

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

XmlRederSettingsは、XmlReaderの一連の機能が有効になっています。そのHtmlファイルにはDOCTYPeがあります。そのため、Dtdprocessing.Ignoreを使用する必要はありません。

関連する問題