2011-03-19 28 views
0

我可以期待修復HtmlAgility庫有哪些錯誤?我從我自己的經驗,知道它可以關閉一個失蹤的標籤,如:HtmlAgility ParseErrors屬性

<car>Nissan</car 

在做負載或LoadHtml,它會解決這個問題,如:

<car>Nissan</car> 

我也知道,ParseErorrs收集能確定原因,流等

是否有錯誤列表(或者您可以從您自己的經驗中知道)HtmlAgility對於修復錯誤有多可靠以及HtmlAgility無法修復哪些錯誤?

回答

5

從歷史上看,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財產上的HTMLDocument(默認值爲false),它能夠檢測到嵌套錯誤時,固定李,TR,TH,TD標籤。這意味着如果它檢測到沒有所有需要的關閉TD的關閉TR,它們將自動關閉。再一次,這正是瀏覽器用格式不正確的Html所要做的。

+1

感謝您的回答,您可以給我一個簡單的例子,說明如何使用HtmlParseError和TagNotClosed,TagNotOpened,OptionFixNestedTags來修復html。 – user569008 2011-03-20 09:39:37