如何让 HtmlAgilityPack 停止自动删除 html 文件中单例标签的斜线?

How to make HtmlAgilityPack stop automatically removing slash of Singleton tags in html file?

我正在制作一个工具来翻译 .epub 文件的字符串。 我尝试使用 HtmlAgilityPack 作为处理从 epub 文件解压的 XHTML 文件的解决方案。

这是一个问题,HtmlAgilityPack 会自动从没有结束标记的标记中删除斜杠。

我已经尝试做一些研究,但不足以帮助我解决问题。

例如: 它最初是在末尾带有斜线。

<link href="style.css" rel="stylesheet" type="text/css" />

但是因为它加载到 HtmlAgilityPack 中,所以斜杠是自动的 已删除。

<link href="style.css" rel="stylesheet" type="text/css">

我知道这两种情况在普通 html 页面中都有效,但在 epub 格式中似乎不一样。 EPUBcheck 总是告诉我 fatal 被删除了。如果我只是忽略警告,它甚至无法被读取。

我花了几个小时来解决这个问题, 有人可以帮帮我吗?

谢谢。

在您的 HtmlDocument 上将 OptionWriteEmptyNodes 属性 设置为 true。

string htmltext =File.ReadAllText("test.html");

HtmlDocument doc = new HtmlDocument();
doc.OptionWriteEmptyNodes = true;

doc.LoadHtml(htmltext);

参考这个 https://html-agility-pack.net/knowledge-base/11047739/optionwriteemptynodes-break-xml-declaration-using-htmlagilitypack