【发布时间】:2016-04-07 00:45:18
【问题描述】:
我在 RHEL 上运行 Apache 2.4 并具有以下 XML -
<?xml version="1.0" encoding="utf-8"?>
<rss>
<channel>
<title>This is a test</title>
<link>http://example.com/</link>
<description>This is a test</description>
<language>en-us</language>
<lastBuildDate>Wed, 06 Apr 2016 13:37:53 -0400</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Test</generator>
</channel>
</rss>
这可以在浏览器中正常加载。现在,如果将其更改为 -
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>This is a test</title>
<link>http://example.com/</link>
<description>This is a test</description>
<language>en-us</language>
<lastBuildDate>Wed, 06 Apr 2016 13:37:53 -0400</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Test</generator>
</channel>
</rss>
我得到“连接已重置”。 apache 访问或错误日志中没有任何内容可以指出可能导致它无法加载的原因。此外,如果我删除 version="2.0" xmlns:xhtml="http://search.yahoo.com/mrss/" 并添加类似 blah="blah" 的内容,它会起作用。版本或命名空间声明导致 XML 无法加载。任何解决此问题的帮助将不胜感激。
更多细节根据评论
- XML 文件是静态的,不是由 PHP 或任何其他代码生成的
- 如果我将扩展名更改为 .txt 或 .html,它就可以正常工作。
如果我有版本或命名空间属性(一个或另一个),则文件不会呈现。所以这两个都失败了-
<rss version="2.0"><rss xmlns:media="http://search.yahoo.com/mrss/">如果我将节点
<rss>重命名为<rss1>,它可以工作。- 测试了所有浏览器,wget 和相同的结果
- PHP 已安装在此服务器上。任何扩展都会导致这种情况吗?
【问题讨论】:
-
为什么需要
version标签? (你试过没有它吗?) -
您的问题似乎很奇怪。 XML是由php生成的?在这种情况下,您可以显示代码吗?那么,你尝试过不止一种浏览器吗?对我来说,xml 是有效的,加载它没有问题。注意
xmlns:xhtml ="http://search.yahoo.com/mrss/没有出现标准命名空间:一般使用xmlns:media="http://search.yahoo.com/mrss/。我认为问题不在于 Apache。 -
@PhilippBraun - 谢谢。请检查我刚刚添加的新详细信息
-
@fusion3k- 我的错。命名空间实际上是 xmlns:media 而不是 xhtml。我只是想看看将其更改为其他内容是否会有所帮助。是的,我在所有最新的浏览器上都试过了 + 也 wget 到了那个文件,但没有运气