2009-08-22 125 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