为什么 HTMLAgilityPack 会删除我的结束标记?

Why does HTMLAgilityPack remove my closing tag?

在 .NET (C#) 中使用 htmlagilitypack 并有一些 html 代码:

<p><ol><li>A bunch of text</li></ol><em>some em text</em> more text here.</p>

然后我将其加载到文档中并通过 LoadHtml 和 Save 函数保存。但我最终得到:

<p><ol><li>A bunch of text</li></ol><em>some em text</em> more text here.

最后一个关闭的 p 标签不见了。

为什么会这样?如何解决?

正如其他人在评论中所说,它是一个无效的 HTML,所以这可能是 HtmlDocument class 本身最终删除 </p> 的原因您可以使用 Save 方法将其存储到文件中,但作为解决方法,您可以使用 System.IO.File class 存储它并将 document.Text 存储在输出位置。

var html = "<p><ol><li>A bunch of text</li></ol><em>some em text</em> more text here.</p>";
var document = new HtmlDocument();
document.LoadHtml(html);
File.WriteAllText("insert_your_path_here", document.Text);