HtmlAgilityPack无效标记

c# html html-agility-pack

我正在使用codeplex中的HtmlAgilityPack。当我将一个简单的html字符串传递给它然后得到生成的html时,它会切断标签。

例:

string html = "<select><option>test</option></select>";
HtmlDocument document = new HtmlDocument();
document.LoadHtml(html);

var result = d.DocumentNode.OuterHtml;

// result gives me:
<select><option>test</select>

因此缺少该选项的结束标记。我错过了设置还是使用了这个错误?

一般承认的答案

我通过在源代码中注释掉HtmlNode.cs的第92行来修复它,编译它就像一个魅力。

ElementsFlags.Add("option", HtmlElementFlag.Empty); // comment this out

找到了这个问题的答案


热门答案

在HTML中,标签没有结束标记。

在XHTML中,必须正确关闭标记。

http://www.w3schools.com/tags/tag_option.asp

“也没有遵守XHTML或XML” - HTML Agility Pack

这可能是为什么?我的猜测是,如果标签是可选的,Agility Pack会将其关闭。希望这可以帮助!



Related

许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因