Как прочитать строку HTML с помощью C # - PullRequest
3 голосов
/ 14 января 2011

Я знаю, как читать строки в текстовом файле, но по какой-то причине C # не определяет конец строки в файлах HTML. Этот код в основном открывает html-файл и пытается анализировать построчно в поисках указанной строки. Даже при попытке напечатать первую строку текста в 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;
                }
            }
        }

Я пробовал это, используя обычный текстовый файл, и он отлично работает, только не при попытке разобрать файл HTML.

Спасибо.

Ответы [ 4 ]

4 голосов
/ 14 января 2011

На сегодняшний день лучшим способом является использование HTML Agility Pack

Подробнее об этом можно узнать в предыдущем вопросе о переполнении стека

Требуется синтаксический анализатор C # HTML

3 голосов
/ 14 января 2011

Вам не нужно изобретать колесо. Гораздо лучший способ разбора HTML - использовать HTML-парсеры:

http://htmlagilitypack.codeplex.com/ или http://www.justagile.com/linq-to-html.aspx

Также похожий вопрос здесь Каков наилучший способ разбора HTML в C #?

Надеюсь, это поможет.

0 голосов
/ 14 января 2011

Ваш внешний цикл, который читает строку, работает нормально. Я предполагаю, что произошло одно из следующих событий:

  • HTML-файл пуст
  • Первая строка в файле HTML пуста

В любом случае вы не увидите ничего напечатанного.

Теперь к вашему циклу:

Вы, вероятно, не видите того, что ожидаете, потому что

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

Поиск совпадения EXACT . Если это ваш настоящий код, вам не хватает открытой скобки </ на </strong>, и вы, вероятно, забываете, что в вашем HTML-контенте есть пробел (отступ).

0 голосов
/ 14 января 2011

Если вы знаете, что этот HTML-код, который вы анализируете, имеет формат XHTML, почему бы не проанализировать этот HTML-код как XML с помощью System.XML?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...