Boh*_*ohn 34 html c# file-io html-parsing
如果我在磁盘上有一个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>
Run Code Online (Sandbox Code Playgroud)
emp*_*mpi 50
使用File.ReadAllText将文件位置作为参数传递.
但是,如果您的真正目标是解析html,那么我建议使用Html Agility Pack.
s15*_*99d 10
这已经被大部分覆盖了,但是当我遇到以前代码示例的问题时,还有一个补充.
Dim strHTML as String = System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("~/folder/filename.html"))
Run Code Online (Sandbox Code Playgroud)
您可以用简单的方法来做到这一点:
string pathToHTMLFile = @"C:\temp\someFile.html";
string htmlString = File.ReadAllText(pathToHTMLFile);
Run Code Online (Sandbox Code Playgroud)
或者您可以使用 FileStream/StreamReader 将其流式传输:
using (FileStream fs = File.Open(pathToHTMLFile, FileMode.Open, FileAccess.ReadWrite))
{
using (StreamReader sr = new StreamReader(fs))
{
htmlString = sr.ReadToEnd();
}
}
Run Code Online (Sandbox Code Playgroud)
后一种方法允许您打开文件,同时仍然允许其他人对该文件执行读/写操作。我无法想象 HTML 文件会非常大,但它具有流式传输文件的额外好处,而不是像第一种方法那样将其捕获为一个大块。