java - 区分 RSS 描述元素中的 HTML/XHTML 和纯文本

标签 java html rss rome atom-feed

长版:

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

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

例子。 订阅:

 <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,以便设置正确的类型属性?

最佳答案

嘿,我爷爷曾经读过那份报纸:)

检测 HTML 的一种非常原始的方法可能是从源代码中剥离任何标记(在 PHP 中,您可以使用 strip_tags() 执行此操作)并查看结果是否与原始标记不同。关于 RSS 的困惑,您可能必须运行两次,一次在 html_entity_decode() 之后,不过,这样实体编码和非编码标签都可以可靠地检测到。

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

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

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

关于java - 区分 RSS 描述元素中的 HTML/XHTML 和纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2396902/

相关文章:

java - native SQL 抛出无效列名异常

html - 新内容迫使网站顶部 - 有一些基本的布局问题 -

java - 如何使类可用于包外的运行时 java 命令

php - 如何使用 PHP 在表中保存禁用的组合框和单选按钮

html - Li 在 float 的 div 之上

java - 有关 RSS 源的查询 - 我的服务器中的数据加载

Android:RSS 解析在特殊字符处停止

java - 当 RSS 订阅号为零时向网站添加文本

java - 如果用户计算机上未安装 Java,如何在 JAR 文件中包含 JVM?

java - 9-patch 图像 : Some file crunching failed, 上的错误,请参阅日志了解详细信息