我正在使用HtmlAgilityPack来清理用户输入的富文本并删除任何有害/不需要的文本。当简单文本也被视为html节点
时会出现问题如果我输入
a<b, c>d
并尝试对其进行消毒,生成的输出为
a<b, c="">d</b,>
我使用的代码是
HtmlDocument doc = new HthmlDocument();
doc.LoadHtml(value);
// Sanitizing Logic
var result = doc.DocumentNode.WriteTo();
我尝试在HtmlDocument(&#39; OptionCheckSyntax&#39; OptionAutoCloseOnEnd&#39;&#39; OptionWriteEmptyNodes&#39;)上设置不同的参数,以使文本不被视为节点但是没有用。这是一个已知问题还是可能的解决办法?
答案 0 :(得分:0)
IMO,你无法告诉HAP不要对待每一个'&lt;'作为新的html节点的开始。但是你可以使用
检查你的html是否是验证htmlstring html = "your-html";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
if (doc.ParseErrors.Count() > 0)
{
//here you can ignore or do whatever you want
}