2011-12-02 67 views
1

我收集了一些我正在嘗試解析的文檔。與HTML一樣,它們結構相當完善,並且具有複雜的語法/語法。也像HTML一樣,許多文檔並不完全遵循所需的語法。瀏覽器如何處理格式錯誤的HTML?

我的問題是,在解析嚴格遵循正確語法的文檔時,瀏覽器和HTML/XML解析庫使用什麼通用策略?他們似乎很好地處理錯位或丟失的標籤。而且我確定還有其他一些情況,比如拼錯的標籤,不正確的屬性等,必須處理而不是簡單忽略。

+0

HTML5規範明確定義瞭如何處理格式不正確的標記。 (以前的標準沒有這個,所以瀏覽器一直以它們自己的方式處理它,通常儘量寬容)。至於拼寫錯誤的標籤/屬性,它們總是被忽略afaik(除了激活一些怪癖模式)。 – Qtax

+0

@Qtax你能提供這部分規格的鏈接嗎?我發現這個http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html,但它沒有提到「湯」一詞,似乎更窄,所以我不確定。 FAQ有:http://wiki.whatwg.org/wiki/FAQ#Why_does_this_new_HTML_spec_legitimise_tag_soup.3F – n611x007

回答

3

格式不正確的或壞的HTML被稱爲作爲「標籤湯」。瀏覽器必須處理這和基於瀏覽器(IE,火狐,Chrome等)不同的方式做到這一點,但這裏是標記湯的好文章和一些通用的策略:

http://en.wikipedia.org/wiki/Tag_soup

2

保持簡短:

  • 在XML

    在代碼中的任何錯誤終止解析過程 - 即所謂的 「嚴厲的錯誤處理

  • 在XHTML就像在任何基於XML的文檔 - 誤差等於終止

  • 在HTML - 瀏覽器嘗試呈現爲多,因爲它可以