2011-11-23 47 views
2

我有一個應用程序接收一些HTML,有時它不包含doctype,它只是從<html>標籤開始。是否可以自動確定文檔類型?

我可以向用戶返回一個錯誤,並要求他們定義一個文檔類型,但我寧願多加一英里(如果可能)以某種方式通過查看HTML代碼來確定適當的文檔類型。

這可能嗎?用JS? PHP?

+1

你需要哪種文檔類型?只需要關心兩種文檔類型的情況。 (1)定義了文檔類型; (2)沒有。而已。 – Boann

+1

您應該返回一個錯誤。我們應該停止接受任何可能的數據,因爲發送它的人不能處理html。 – scube

回答

4

最簡單的選擇可能是多次驗證文檔,每次都預先添加一個不同的文檔類型。

然後,您可以假定哪個Doctype導致最少的錯誤是使用的錯誤。

W3C標記驗證服務有an API,您可以在本地複製downloadinstall以獲得更好的性能(並避免敲擊由第三方提供的免費服務)。

+0

我會試試這個。希望這些請求不會超過2或3秒! – Abs

+0

如果你有驗證器的本地安裝,它們應該很快。 – Quentin

0

你可以檢查代碼的一些基本知識。

  1. 與/>或>(IMG例如)
  2. 正在使用的屬性,其只是在可用的過渡文檔類型(目標例如)
  3. 是含有它們只是在定義的標記結束空標籤HTML5?

如果你有這樣的三個答案,你可以不同我想這

之間
  1. HTML和XHTML
  2. 過渡和嚴格
  3. (X-)HTML4和HTML5

比使用api更容易。

相關問題