HtmlAgilityPack LoadHtml(string html) 丢失一些标签

HtmlAgilityPack LoadHtml(string html) lose some tage

我使用 HtmlAgilityPack 加载 html 代码,但一些标签会丢失。

<Item><link>http:...</link><Item>

但是当我使用 LoadHtml(string html) 时,我得到的 Outerinner html 是

<Item><link>http...<Item>

标签 </link> 丢失。我需要打开一些选项吗? 谢谢

<link> 标签不应该在任何地方,除了 <head> 部分,另外,根据定义,它是一个应该自封闭的标签。

您将需要覆盖 "link" 标签 (you may need to tweak the settings instead of simply removing them) 的设置:

if (HtmlNode.ElementsFlags.ContainsKey("link"))
{
    HtmlNode.ElementsFlags.Remove("link");
}

并且根据文档的混乱程度,您可能需要指示 HTML 敏捷包停止修复标签并在不正确的位置支持标签。

HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();

// You may need to tweak the following options:
htmlDoc.OptionFixNestedTags = false;
htmlDoc.OptionCheckSyntax   = false;