HtmlAgility ParseErrors屬性

html-agility-pack

我可以期待修復HtmlAgility庫有哪些錯誤?我根據自己的經驗知道它可以關閉一個缺失的標籤,例如:

<car>Nissan</car

何時執行Load或LoadHtml,它將修復它,如:

<car>Nissan</car

我也知道ParseErorrs集合可以確定Reason,Stream等。

是否存在錯誤列表(或者您可以根據自己的經驗判斷)HtmlAgility修復錯誤的可靠性以及HtmlAgility無法解決哪些錯誤?

熱門答案

從歷史上看,Html Agility Pack從未設計用於修復 Html,而是能夠加載,修改和保存它,即使此Html有錯誤。

這意味著它將修復一般由瀏覽器自動修復的錯誤,例如您在問題中顯示的錯誤。錯誤列表已通過實驗確定,您可以瀏覽源代碼以獲得有關它的深入見解。話雖這麼說,它實際上是在2000/2001年設計的,所以事情可能在那個地區發生了變化:-)

ParseErrors集合將包含帶有代碼的HtmlParseError對象。代碼是一個記錄的枚舉:

    /// A tag was not closed.
    TagNotClosed,

    /// A tag was not opened.
    TagNotOpened,

    /// There is a charset mismatch between stream and declared (META) encoding.
    CharsetMismatch,

    /// An end tag was not required.
    EndTagNotRequired,

    /// An end tag is invalid at this position.
    EndTagInvalidHere

OptionFixNestedTags上還有一個OptionFixNestedTags屬性(默認值為false),它能夠在檢測到嵌套錯誤時修復LI,TR,TH,TD標記。這意味著如果它在沒有所需的關閉TD的情況下檢測到關閉TR,它們將自動關閉。同樣,這正是瀏覽器將對格式錯誤的Html做的事情。




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