public static void Main()
<h1>This is <b>bold</b> heading</h1>
<p>This is <u>underlined & <b>bold</b></u> paragraph</p>
Console.Write(HtmlEncode(html));
public static string HtmlEncode(string html)
if (html == null) return null;
var doc = new HtmlAgilityPack.HtmlDocument();
doc.OptionWriteEmptyNodes = true;
EncodeNode(doc.DocumentNode);
return doc.DocumentNode.InnerHtml;
private static void EncodeNode(HtmlNode node)
foreach (var childNode in node.ChildNodes)
if (childNode.NodeType == HtmlNodeType.Text)
childNode.InnerHtml = HttpUtility.HtmlEncode(childNode.InnerHtml);
else if (node.NodeType == HtmlNodeType.Text)
node.InnerHtml = HttpUtility.HtmlEncode(node.InnerHtml);