2009-08-22 96 views
0

創建顯示較大html文檔的子集(前x個字符)的rss供稿時,我遇到了一些問題,其中一些標籤以「前x個字符「但結束標籤超出了該範圍。如果Feed的使用者試圖呈現Feed中的HTML,則這可能會導致一些有趣的問題,因爲它可能會在顯示Feed的頁面中導致意外的呈現問題。強制HTML段中的結束標籤或忽略缺失的結束標籤

我假設這是rss feed作家和讀者很久以前解決的常見問題,但我似乎無法弄清楚如何實現它,試圖解析html中的feed並添加缺少的結束標籤可能會變得混亂。任何建議,將不勝感激。提前致謝。

克里斯

回答

0

如果您使用PHP,一個優秀的解決方案是HTMLPurifier。它將清理它並使其完全安全地重新傳輸。

+0

感謝您的建議,不幸的是,這是一個.NET項目,所以技術上明智這不適合,但我會記住這在PHP的其他項目。 – 2009-08-23 02:08:39

0

不知道這是否適用於您的項目,但我在FeedDemon中使用了HTML Tidy

+0

謝謝。聽起來很有希望。我會在進一步調查後回覆。 – 2009-08-23 02:09:10

0

大文件從哪裏來?如果有生成HTML的源文本,那麼很多更容易截斷它,並從截斷版本重新生成HTML,而不是處理部分HTML的處理問題。要正確地做到這一點,基本上需要重新解析和重新編譯HTML。無論如何,在RSS裏面的HTML仍然很麻煩。你可能會更好地去掉所有的標籤,並在剩下的部分做一個簡單的文本截斷。

+0

較大的文檔來自用戶從YUI Rich文本編輯器輸入的文本。更經常地,本文中將包含HTML格式。 – 2009-08-23 02:10:41

+0

這很不幸。處理一般的HTML非常難以正確執行,特別是關心安全性。您可能必須獲得全面的HTML解析器,將輸入變爲DOM或類似的對象樹,然後在重新序列化之前刪除位。 – bobince 2009-08-23 11:01:27

+0

(這基本上是Tidy或Purifier會在內部完成的。) – bobince 2009-08-23 11:02:18