我最近在我发布的一些RSS源中引入了HTML(到目前为止只有纯文本,没有标记),我想知道哪种方法更好:使用字符编码(例如htmlspecialchars)或者只是封装所有内容CDATA?
在我看来,CDATA可能更容易,但我不清楚选择一种方法与另一种方法是否存在任何原因(微妙或其他原因)。 (首先,在查看源代码时,CDATA方法会更容易阅读...)
答案 0 :(得分:4)
CDATA适用于XML解析器不应解析的任何数据。任何不在CDATA块中的标签将由XML解析器解析,并且可能具有不同的含义。
如果不需要,CDATA也会为解析器带来开销。 ,只要您知道不会使用HTML(或其他方式),请尽量避免使用CDATA阻止那就是说,我同意jamesh,因为你应该总是喜欢Atom而不是RSS。我生产一个提要阅读器,在抓取提要时,总是喜欢Atom而不是RSS。
答案 1 :(得分:3)
个人CDATA更容易,因为它允许订阅者显示实际的HTML而不需要他们的读者做任何有趣的事情。
如果您使用HTML编码,订阅者或网站自己必须解码源以显示HTML
答案 2 :(得分:1)
冒着给出答案的风险,您可能不想听到:使用Atom 代替 RSS。
Atom是一个很好的命名空间XML,因此您可以直接混合和匹配XHTML,而不必担心您询问的编码问题。
它几乎支持RSS所有,并且因为它只是普通的Atom,如果你真的不想使用库来操作它,它就更容易自己滚动。
Atom也是IETF标准,RSS不是。
答案 3 :(得分:0)
htmlentities()就像一个魅力。无需使用CDATA。 http://php.net/manual/en/function.htmlentities.php