当我在IE中访问以下PHP代码的页面时,IE会产生错误,“Internet Explorer不支持带有DTD的订阅源。此订阅源包含DTD(文档类型定义)。...... DTD是用于定义网页的结构.Internet Explorer不支持Feed中的DTD。“
<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" ?>';
?>
<!DOCTYPE doctypeName [
<!ENTITY nbsp " ">
]>
<rss version="2.0">
<channel>
<title>Sample Feed</title>
<link>http://google.com</link>
<description>This is a test</description>
<item>
<title>Item</title>
<description>This is the item. </description>
</item>
</channel>
</rss>
我怀疑这部分是问题所在:
<!DOCTYPE doctypeName [
<!ENTITY nbsp " ">
]>
但如果删除它,我会收到此错误:
对未定义实体的引用'nbsp'。 行:10字符:36
这是项目。
因此有必要在description标记中允许
。
有什么想法吗?
答案 0 :(得分:2)
不是有效的XML。使用DTD使其有效是一个糟糕的解决方法。
如果您在内容中需要它,那么该内容实际上是HTML;在这种情况下,你应该
&
。This question概述了哪种方法更好。 Quentin的回答还包含另一种解决方案,使用XML库创建标记。对于您的具体示例而言可能有点过分,但这通常是最佳方式。