Вместо этого вы можете использовать средство записи XML, которое является более чистым:
StringBuilder builder = new StringBuilder();
using (XmlWriter writer = XmlWriter.Create(builder))
{
string abc = "hello welcome!!";
writer.WriteStartElement("td");
writer.WriteAttributeString("style", "padding-left:30px;width:100%");
{
writer.WriteStartElement("span");
writer.WriteAttributeString("id", "AnnMsg");
writer.WriteAttributeString("target", "_top");
writer.WriteAttributeString("style", "text-decoration:none;cursor:pointer");
{
writer.WriteStartElement("B");
{
writer.WriteStartElement("nobr");
{
writer.WriteString(abc); // Here's where your variable is rendered as text
}
writer.WriteEndElement();
}
writer.WriteEndElement();
}
writer.WriteEndElement();
}
writer.WriteEndElement();
}
То есть XmlWriter запишет текст XML в ваш StringBuilder.
Другой подход будет использовать StringBuilder.AppendFormat:
string abc = "hello welcome!!";
StringBuilder sb = new StringBuilder();
sb.AppendFormat
(
"<td style='padding-left:30px;width:100%'><span style='text-decoration:none;cursor:pointer' id='AnnMsg' target='_top' ><B><nobr>{0}</nobr></B></span></td></tr></table>",
arg0: abc
);
StringBuilder.AppendFormat похож на String.Format:
Для меня главным преимуществом использования XML Writer является то, что вы избегаете человеческих ошибок, и ваш (X) HTML будет безошибочно сформирован.