应用于 html 字符串时替换不起作用

Replace not working when applied to an html string

作为介绍,我使用 MS Word 创建了一个文档,然后另存为 html 文档。 在 C# 中,我正在构建一个无序的 html 列表(使用 MS Word 格式),然后通过替换特定标签将其添加到 html 文档中。

我将以下字符串变量 unorderedHtmlList 初始初始化为空字符串。然后我连接 html 字符串并替换一些由“[[”和“]]”字符括起来的标签。出于某种原因,当我应用替换时,它不会用新值替换项目 [[fieldName]] 和 [[fieldValue]]。请参阅下面的代码:

string unorderedHtmlList = string.Empty;

foreach (System.Data.DataRow row in myDataTable.Rows)
{
    string name = row["fieldName"].ToString();               
    string value = row["fieldValue"].ToString();

    unorderedHtmlList += "<p style='margin-left:36.0pt;text-align:justify;text-indent:-18.0pt;" +
                        "line-height:125%;mso-list:l1 level1 lfo3'><![if !supportLists]><span" +
                        "style='font-size:10.5pt;line-height:125%;font-family:\"Arial\",sans-serif;" +                                        
                        "mso-fareast-font-family:Arial;color:#222222'><span" +
                        "style='mso-list:Ignore'>-<span style='font:7.0pt \"Times New Roman\"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" +
                        "</span></span></span><![endif]><span style='font-size:10.5pt;" +
                        "line-height:125%;font-family:\"Arial\",sans-serif;color:#222222'>[[fieldName]]" +
                        "</span><span style='font-size:10.5pt;line-height:125%;font-family:" +
                        "\"Helvetica\",sans-serif;color:#222222'>[[fieldValue]]</span><span" +
                        "style='font-size:10.5pt;line-height:125%;font-family:\"Arial\",sans-serif;" +
                        "color:#222222'><o:p></o:p></span></p>".Replace("[[fieldName]]", name).Replace("[[fieldValue]]", value);
}

知道为什么 Replace 不起作用吗?

您正在连接字符串,替换操作仅在最后一部分执行。

"color:#222222'><o:p></o:p></span></p>".Replace("[[fieldName]]", name).Replace("[[fieldValue]]", value);

试试这个:

        unorderedHtmlList += ("<p style='margin-left:36.0pt;text-align:justify;text-indent:-18.0pt;" +
                            "line-height:125%;mso-list:l1 level1 lfo3'><![if !supportLists]><span" +
                            "style='font-size:10.5pt;line-height:125%;font-family:\"Arial\",sans-serif;" +
                            "mso-fareast-font-family:Arial;color:#222222'><span" +
                            "style='mso-list:Ignore'>-<span style='font:7.0pt \"Times New Roman\"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" +
                            "</span></span></span><![endif]><span style='font-size:10.5pt;" +
                            "line-height:125%;font-family:\"Arial\",sans-serif;color:#222222'>[[fieldName]]" +
                            "</span><span style='font-size:10.5pt;line-height:125%;font-family:" +
                            "\"Helvetica\",sans-serif;color:#222222'>[[fieldValue]]</span><span" +
                            "style='font-size:10.5pt;line-height:125%;font-family:\"Arial\",sans-serif;" +
                            "color:#222222'><o:p></o:p></span></p>").Replace("[[fieldName]]", name).Replace("[[fieldValue]]", value);