【问题标题】:What are the supported elements in the RSS 2.0 description tag?RSS 2.0 描述标签中支持哪些元素?
【发布时间】:2011-06-14 04:56:49
【问题描述】:

我的问题是我有一个生成 RSS 提要的 php 脚本。它从 SQL 数据库加载描述。 SQL 数据库表还用于在我的网站主页上显示新帖子。当用户提交帖子时,它可以包含<li> 标签。显然,这些在 RSS 2.0 规范中不受支持。但我似乎找不到显示受支持标签的列表。

这里是提要验证链接-

http://validator.w3.org/feed/check.cgi?url=http://cryptum.net/post_feed.php

【问题讨论】:

  • 好吧,不在 ul\ol 内的 html 无效
  • 感谢 dagon,我没有想到

标签: php xml rss cdata


【解决方案1】:

在 XML 中,<& 等字符在元素中是非法的,因此您必须对包含它们的任何元素进行转义。因此,您应该将<description> 转义为字符数据,告诉XML 解析器忽略<![CDATA[]]> 之间的任何内容。

<description><![CDATA[<p>Your text.</p>]]></description>

【讨论】:

  • 不,不,不,不,不,不,你应该使用类似 htmlentities() 的东西对非法实体进行编码。 CDATA 是一种糟糕的 hacky 方式。见en.wikipedia.org/wiki/XML#Escaping
  • @James Butler 你错了。使用htmlentities&amp;lt; 之类的东西变成&amp;lt;,其中包括&amp;。您不能在元素中使用&amp;s,因为它们是非法字符。他应该将数据转义为 XML 中的字符数据。
  • 这正是 CDATA 的设计目的,所以它绝对不是,无论如何,hacky。它确实存在数据不能包含]]&gt; 的缺点,因此如果您务实地生成内容,使用实体是一个更简单的选择。
  • @Michael — 错误。 &lt;foo&gt; &amp;lt; &lt;/foo&gt;&lt;foo&gt; &lt;![CDATA[&lt;]]&gt; &lt;/foo&gt; 是相同的。 两者都不是禁止的。
  • 也许 hacky 是一个稍微错误的词,但是当您将 HTML 转换为字符数据块时感觉有点不对劲,事实并非如此。 TBH 这是非常学术性的,两者都可以满足您的需求。
【解决方案2】:

使用 CDATA 应该完全没问题。

【讨论】:

    猜你喜欢
    • 2016-09-20
    • 1970-01-01
    • 2011-04-02
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 2013-04-01
    • 1970-01-01
    相关资源
    最近更新 更多