如何在以下示例中删除保留html内容的所有未知存在自定义标记:
<div>
<h1>my header</h1>
<custom:p>
<h2>my Title</h2>
</custom:p>
<anothercustom:p>
<h3>my SubTitle</h3>
</anothercustom:p>
</div>
我想返回
<div>
<h1>my header</h1>
<h2>my Title</h2>
<h3>my SubTitle</h3>
</div>
HTML清理程序有什么解决方案吗?
感谢您的帮助。
答案 0 :(得分:1)
您可以使用HtmlSanitizer.RemovingTag
事件来保留代码的内容:
var sanitizer = new HtmlSanitizer();
sanitizer.RemovingTag += (sender, args) =>
{
args.Tag.OuterHtml = sanitizer.Sanitize(args.Tag.InnerHtml);
args.Cancel = true;
};
var sanitized = sanitizer.Sanitize("<unknown>this will not be removed</unknown>");
答案 1 :(得分:1)
我一直在寻找同样的事情。我发现HtmlSanitizer
在版本3.4.156中有一个KeepChildNodes
选项,我正在使用它,这正是如此。
var sanitizer = new HtmlSanitizer();
sanitizer.KeepChildNodes = true;
sanitizer.Sanitize(html);