2011-01-14 10 views
3

私はtxtファイルの行を読み込む方法を知っていますが、何らかの理由でC#がHTMLファイルの行末を検出していません。このコードは、基本的にhtmlファイルを開き、指定された文字列を検索する行ごとに解析しようとします。 HTMLファイルnothignにテキストの最初の行を印刷しようとしているときだけ表示されます。C#を使用してHTMLの行を読む方法

using (StreamReader sr = new StreamReader("\\\\server\\myFile.html")) 
     { 
      String line; 
      while ((line = sr.ReadLine()) != null) 
      { 
       if(line == ("<td><strong>String I wantstrong></td>")) 
       { 
        Label1.Text = "Text Found"; 
        break; 
       } 
      } 
     } 

私はプレーンtxtファイルを使用してこれを試していますが、HTMLファイルを解析しようとしているときにはうまく動作しません。

ありがとうございました。

+0

終了の「強い」は終了タグです。 –

+0

申し訳ありませんが、コピー&ペーストすると、私のコードに '<'があります。また、 '('と ')'括弧は私のコードにありません。 – Rupert

+0

ファイルには何かがありますか?アプリケーションを実行しているユーザーは、そのネットワークリソースを使用する権限を持っていますか?ファイルをローカルにコピーする場合、このコードは機能しますか?ループを壊した場合、ブレークポイントがヒットしますか?ここで実行する必要があるデバッグ作業はかなり簡単です... – cdhowie

答えて

0

あなたがこのHTMLを知っていれば、XHTMLの解析が行われます。このHTMLをSystem.XMLを使用してXMLとして解析してみませんか?

0

あなたの外側のループが正常に動作します以前のスタックオーバーフローで見つけることができます使用することです。私の推測では、場所取られ、次のいずれかになります。

  • HTMLファイルが
  • HTMLファイルの最初の行は、いずれの場合も

空である、あなたは何も表示されません空であります印刷されます。

今、あなたのループに:

if(line == ("<td><strong>String I wantstrong></td>")) 
{ 
    Label1.Text = "Text Found"; 
    break; 
} 

EXACT一致するものを探しますので

あなたはおそらく、あなたが期待するものは表示されません。これが実際のコードの場合は、</</strong>という括弧がありません。HTMLコンテンツに空白(インデント)があることを忘れている可能性があります。

関連する問題