web-dev-qa-db-ja.com

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>
32
Bohn

File.ReadAllText を使用して、ファイルの場所を引数として渡します。

ただし、実際の目標がhtmlの解析である場合は、 Html Agility Pack を使用することをお勧めします。

47
empi

System.IO.File.ReadAllText(fileName)を使用します

16
L.B
string html = File.ReadAllText(path);
12
Forte L.

これについてはすでにほとんど説明されていますが、以前のコードサンプルで問題が発生したため、1つ追加されました。

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

File.ReadAllText(path_to_file)を使用して読み取ります

5
Srijan

どのような処理をしようとしていますか? XmlDocument doc = new XmlDocument();の後にdoc.Load(filename)を続けることができます。次に、XMLドキュメントをメモリで解析できます。

XmlDocumentの詳細については、こちらをご覧ください。

4
Ted Spence

あなたはそれを簡単な方法で行うことができます:

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ファイルが非常に大きいとは想像できませんが、最初の方法のように1つの大きなチャンクとしてキャプチャするのではなく、ファイルをストリーミングするという追加の利点があります。

0
vapcguy