2011-01-14 4 views
3

Ich weiß, wie man eine Zeile in einer TXT-Datei liest, aber aus irgendeinem Grund erkennt C# das Ende der Zeile in HTML-Dateien nicht. Dieser Code öffnet im Grunde die HTML-Datei und versucht Zeile für Zeile nach der angegebenen Zeichenfolge zu suchen. Auch wenn nur versucht wird, die erste Textzeile in der HTML-Datei zu drucken, wird nothign angezeigt.So lesen Sie eine HTML-Zeile mit C#

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; 
       } 
      } 
     } 

Ich habe dies versucht, eine einfache txt-Datei und es funktioniert perfekt, nur nicht bei dem Versuch, eine HTML-Datei zu analysieren.

Danke.

+0

Die Endung 'strong' ist das End-Tag. –

+0

Sorry, ich habe beim Kopieren und Einfügen versaut, das '<' steht dort auf meinem Code. Auch die Klammern "(" und ")" stehen nicht auf meinem Code. – Rupert

+0

Gibt es etwas in der Datei? Hat der Benutzer, der die Anwendung ausführt, die Berechtigung, diese Netzwerkressource zu verwenden? Funktioniert dieser Code, wenn Sie die Datei lokal kopieren? Wenn Sie die Schleife unterbrechen, wird der Breakpoint getroffen? Es scheint mir, dass die Debug-Arbeit, die hier getan werden muss, ziemlich einfach ist ... – cdhowie

Antwort

0

Wenn Sie dieses HTML kennen, das Sie analysieren, ist von XHTML warum parst dieses HTML als XML, das System.XML verwendet?

0

Ihre äußere Schleife gefunden werden, die Linie funktioniert gut liest. Meine Vermutung ist, eine der folgenden Aktionen wird stattgefunden:

  • Die HTML-Datei ist leer
  • Die erste Zeile in der HTML-Datei ist leer

In jedem Fall werden Sie nichts sehen gedruckt.

Nun, um Ihre Schleife:

Sie wahrscheinlich nicht sehen, was Sie erwarten, weil

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

für ein EXACT Spiel aussehen. Wenn dies Ihr tatsächlicher Code ist, verpassen Sie die offene Klammer </ auf </strong> und Sie werden wahrscheinlich vergessen, dass in Ihrem HTML-Inhalt Leerzeichen (Einrückungen) vorhanden sind.