首页 文章

发布使用CDATA验证RSS提要?

提问于
浏览
2

我需要为我的网站制作RSS源 . 问题是内容已导入并包含内联样式和其他标记 . 我看过各种各样的方法,但我不能把它全部删除,有些方法阻止了我的饲料验证 .

一个似乎有用的工作是:

<![CDATA[ <description>My Content here </description> ]]>

从我读到的内容,这将停止内容被xml解析,这就是为什么它验证确定 . 我看了几个读者,看起来很好,但是这种方法有风险/不足吗?我真的不明白其含义所以我很欣赏任何有关我可以执行的测试的建议或信息 .

谢谢

1 回答

  • 3

    这是一个非常合理的方法,但你应该注意到你应该使用它:

    <description><![CDATA[My Content here]]></description>
    

    ...而不是:

    <![CDATA[ <description>My Content here </description> ]]>
    

    ...因为 <description> 元素是RSS规范的一部分,所以应该正确地存在于RSS中,而不是作为文本进行转义 .

    如果您要在 titledescription 中包含非RSS内容(通常是HTML),特别是如果它是用户生成的内容可能包含各种标记或无效标记,则将整个内容标记为像这样的字符数据肯定是要走的路 .

    RSS阅读器通常期望并愉快地处理在 description 元素中存储为CDATA的HTML,而他们使用的XML解析器(以及解析RSS的任何其他内容)可能对可能通过包含HTML标记而创建的格式错误的XML非常敏感,意外实体甚至只是 <description> 文本中的单个“ < ”而没有转义 .

    使用XML库提供的任何方法将内容作为CDATA插入,而不是仅使用 <![CDATA[]]> 手动包装它;这样所有的想法(如果内容包括 ]]> 会发生什么)将为你完成 .

相关问题