2

长版:

熟悉 RSS 系列标准化噩梦的人可能知道,如果“描述”元素仅包含纯文本或 html 或 xhtml,则 RSS 不会为您提供信息。

我目前使用 ROME-API 将各种 RSS 版本转换为 Atom 1.0。Rome-API 将愉快地解析 RSS,然后输出一个 Atom 提要。幸运的是,Atom 有一种方法可以将摘要声明为包含文本、html 或 xhtml。

例子。RSS:

 <item>
       <link>http://www.schwarzwaelder-bote.de/wm?catId=79039&amp;artId=14737088&amp;rss=true</link>
        <title>Analyse: Winter reißt Löcher in Straßen und Kassen</title>
        <description>&lt;img src="http://www.schwarzwaelder-bote.de/cms_images/swol/dpa-InfoLine_rs-images/20100306/1192a_24128948.thumbnail.jpg" alt="Schlagloch" title="" border="0"&gt;&amp;nbsp;&amp    ;nbsp;&amp;nbsp;Berlin (dpa) - Von Schnee und Eis befreit sind Deutschlands Straßen, und jetzt geht es ans große Aufräumen....</description>
      </item>

变成:原子:

<entry>
  <title>Analyse: Winter reißt Löcher in Straßen und Kassen</title>
  <link rel="alternate" href="http://www.schwarzwaelder-bote.de/wm?catId=79039&amp;artId=14737088&amp;rss=true" />
  <author>
    <name />
  </author>
  <id>http://www.schwarzwaelder-bote.de/wm?catId=79039&amp;artId=14737088&amp;rss=true</id>
  <summary type="text">&lt;img src="http://www.schwarzwaelder-bote.de/cms_images/swol/dpa-InfoLine_rs-images/20100306/1192a_24128948.thumbnail.jpg" alt="Schlagloch" title="" border="0"&gt;&amp;nbs    p;&amp;nbsp;&amp;nbsp;Berlin (dpa) - Von Schnee und Eis befreit sind Deutschlands Straßen, und jetzt geht es ans große Aufräumen....</summary>
</entry>

问题是type="text"它告诉像 firefox 这样的提要阅读器将摘要的内容呈现为文本——> 你可以看到所有的 html 源代码。

简短版:如何检测描述元素的内容是 (X)HTML,以便我可以设置正确的类型属性?

4

1 回答 1

0

呵呵,我爷爷以前看过那份报纸:)

检测 HTML 的一种非常原始的方法可能是从源代码中去除任何标记(在 PHP 中,您可以使用 来执行此操作strip_tags())并查看结果是否与原始结果不同。参考 RSS 的混乱,您可能必须运行两次,一次之前,一次之后html_entity_decode(),但是,实体编码和非编码标签都可以可靠地检测到。

通常,这应该会产生中途可靠的结果,但后来我看到了ö

   <title>Analyse: Dem Mutigen geh<F6>rt die Urne</title>

这是一种什么样的编码方式?我以前从未见过。这当然会被(错误)解释为 HTML 标记。这是原子特定的东西吗?

于 2010-03-07T16:17:41.407 回答