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會將其關閉。希望這可以幫助!



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因