Подтвердить что ты не робот

Прочитать HTML файл в строковой переменной в памяти

Если у меня есть файл HTML на диске, как я могу прочитать все это сразу в переменной String во время выполнения? Затем мне нужно выполнить некоторую обработку этой строковой переменной.

Некоторые html файлы:

<html>
    <table cellspacing="0" cellpadding="0" rules="all" border="1" style="border-width:1px;border-style:solid;width:274px;border-collapse:collapse;">
        <COLGROUP><col width=35px><col width=60px><col width=60px><col width=60px><col width=59px></COLGROUP>
        <tr style="height:20px;">
            <th style="background-color:#A9C4E9;"></th><th align="center" valign="middle" style="color:buttontext;background-color:#D3DCE9;">A</th><th align="center" valign="middle" style="color:buttontext;background-color:#D3DCE9;">B</th><th align="center" valign="middle" style="color:buttontext;background-color:#D3DCE9;">C</th><th align="center" valign="middle" style="color:buttontext;background-color:#D3DCE9;">D</th>
        </tr><tr style="height:20px;">
            <th align="center" valign="middle" style="color:buttontext;background-color:#E4ECF7;">1</th><td align="left" valign="top" style="color:windowtext;background-color:window;">Hi</td><td align="left" valign="top" style="color:windowtext;background-color:window;">Cell Two</td><td align="left" valign="top" style="color:windowtext;background-color:window;">Actually a longer text</td><td align="left" valign="top" style="color:windowtext;background-color:window;">Final Word</td>
        </tr>
    </table>
</html>
4b9b3361

Ответ 1

Используйте File.ReadAllText, передавая местоположение файла в качестве аргумента.

Однако, если ваша реальная цель - анализ html, я бы порекомендовал использовать Html Agility Pack.

Ответ 2

Используйте System.IO.File.ReadAllText(fileName)

Ответ 3

string html = File.ReadAllText(path);

Ответ 4

В основном это уже рассмотрено, но одно дополнение, когда я столкнулся с проблемой с предыдущими образцами кода.

Dim strHTML as String = System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("~/folder/filename.html"))

Ответ 5

Используйте File.ReadAllText(path_to_file) для чтения

Ответ 6

Какую обработку вы пытаетесь сделать? Вы можете сделать XmlDocument doc = new XmlDocument();, а затем doc.Load(filename). Затем XML-документ может быть проанализирован в памяти.

Читайте здесь для получения дополнительной информации о XmlDocument:

Ответ 7

Вы можете сделать это простым способом:

string pathToHTMLFile = @"C:\temp\someFile.html";
string htmlString = File.ReadAllText(pathToHTMLFile);

Или вы можете передать его с помощью FileStream/StreamReader:

using (FileStream fs = File.Open(pathToHTMLFile, FileMode.Open, FileAccess.ReadWrite))
{
    using (StreamReader sr = new StreamReader(fs))
    {
        htmlString = sr.ReadToEnd();
    }
}

Этот последний метод позволяет открывать файл, в то же время позволяя другим выполнять операции чтения/записи над файлом. Я не могу представить, чтобы файл HTML был очень большим, но он обладает дополнительным преимуществом потоковой передачи файла вместо того, чтобы захватывать его как один большой фрагмент, как в первом методе.