4

我最近在我发布的一些 RSS 提要中引入了 HTML(到目前为止只有纯文本,没有标记),我想知道哪种方法更好:使用字符编码(例如 htmlspecialchars)还是将所有内容封装在 CDATA 中?

在我看来,CDATA 可能更容易,但我不清楚是否有任何理由(微妙或其他)选择一种方法而不是另一种方法。(对于初学者来说,CDATA 方法在查看源代码时会更容易阅读......)

4

4 回答 4

4

CDATA 用于不应由 XML 解析器解析的任何数据。任何不在 CDATA 块中的标记都将由XML 解析器解析,并且可能具有不同的含义。

如果不需要,CDATA 也会导致解析器的开销。只要您知道不会使用 HTML(或其他方式),请尽量避免使用 CDATA 块,否则请使用它。

也就是说,我确实同意 jamesh,因为您应该始终更喜欢 Atom 而不是 RSS。我制作了一个提要阅读器,在抓取提要时,总是更喜欢 Atom 而不是 RSS。

于 2008-10-28T11:44:59.887 回答
3

就个人而言,CDATA 更​​容易,因为它允许订阅者显示实际的 HTML,而不需要他们的读者做任何有趣的事情。

如果您使用 HTML 编码,订阅者阅读器或网站本身必须解码源以显示 HTML

于 2008-10-27T19:24:25.200 回答
1

冒着给出您可能不想听到的答案的风险:使用Atom 而不是RSS。

Atom 是很好的命名空间 XML,因此您可以直接混合和匹配 XHTML,而不必担心您询问的编码问题。

RSS 几乎在任何地方都支持它,而且因为它只是普通的 Atom,如果你真的不想使用库来操作它,那么你自己的会更容易。

Atom 也是 IETF 标准,而 RSS 不是。

于 2008-10-27T19:23:34.267 回答
0

htmlentities() 就像一个魅力。无需使用 CDATA。 http://php.net/manual/en/function.htmlentities.php

于 2011-02-25T22:05:34.763 回答