从大块HTML构造一个字符串

时间:2010-06-18 08:59:07

标签: c#

只是想知道我的问题是否有一个简单的方法。如果我想将一大块HTML放入一个字符串中,那么如果不首先转义HTML,怎么可能呢?有太多的HTML用于我的MySpace机器人(插入配置文件),它将永远逃脱。

4 个答案:

答案 0 :(得分:3)

根据@MattMitchell的建议,您可以将该文件作为资源包含在项目中。然后你只需要引用它(MyNameSpace.Properties.Resources.MyHTMLFile)以将内容作为字符串。

答案 1 :(得分:2)

不是。但是你可以使用逐字字符串文字(以@为前缀)使你的生活稍微容易一点 - 你只需要用“with”替换“以逃避字符串。

答案 2 :(得分:2)

将其放入文件中,加载文件。

示例:

string myHTML;
using (FileStream file = new FileStream("path.txt", FileMode, FileAccess))
{
    using (StreamReader sr = new StreamReader(file))
    {
        myHTML = sr.ReadToEnd();
        sr.Close();
    }
    file.Close();
}

如果要在HTML中插入变量,请将变量位置替换​​为{0} .. {n},然后使用string.Format();

E.g。

<html><div>{0} = {1}</div></html>

并在你的C#中

string myHTMLwithVars = string.Format(myHTML, var1, var2);

或者(如果有很多变量或者订单可能会更改,则更易于管理),在HTML中为每个“变量点”命名并使用字符串替换。

<html><div>{username} = {randomImageFile}</div></html>

c#c​​hange:

string myHTMLwithVars = myHTML
    .Replace("{username}", usernameVar)
    .Replace("{randomImageFile}", "image.jpg");

答案 3 :(得分:0)

为什么不从文件或项目中的嵌入资源中读取此HTML?这样就没有必要逃避。

从文件中读取:

string contents = File.ReadAllText("path/to/file.htm");