PHP生成的XML Feed显示为文本

时间:2017-03-28 21:17:58

标签: php xml

编辑:这个怎么样太宽了?我的问题因为过于宽泛而被搁置,但我问了一个问题并提供了截图和源代码。我还需要什么?我觉得这个被标记为关闭之前,标记它的人在这里阅读了所有内容。我提供了我的文件的完整源代码。救命!我不是很受欢迎。 : - (

我按照此问题中的答案来获取现有的XML Feed,更改了一些标记名称,然后吐出新的Feed:

How do I change XML tag names with PHP?

我遇到的问题是,当Feed在任何浏览器中显示时,它会显示为文本,而不是像其他正常的'那样格式化。 XML提要。我假设因为我没有告诉PHP将页面呈现为XML,所以它默认采用text / html,这就是它发生的原因。但是,当我在标题中指定它的XML时,它会生成一些XML格式,但我的所有Feed都会在' pre'之间显示为粗体。上面链接的答案中的标签。删除' pre'来自源代码的标记,它什么都不生成。

没有标头指定XML:

Rendering as Text

使用标头指定XML:

Rendering Improperly as XML

有没有人有任何提示可以指导我在浏览器中正确呈现?

提前致谢!

来源链接在下面的评论中。 StackOverflow不允许我添加第三个链接。

2 个答案:

答案 0 :(得分:0)

修正了它!

我换了:

    `echo 'PRETAG'; print_r(htmlspecialchars($xml)); echo 'PRETAG';`

    `print_r($xml);`

并将XML内容类型添加到标题中:

    `header ("Content-Type:text/xml");`

我的原始资料(如上面的评论中所述)可在此处获取:来源:ufile.io/4fee1

答案 1 :(得分:-1)

您是否通过xml验证程序运行生成的代码以确保重命名函数返回有效的xml语法?

如果你唯一的问题是在浏览器中渲染它,你可能会调查simple_xml_load_stringSimpleXMLElement来将你的xml解析为可行的对象。

simplexml_load_string
$showme = simplexml_load_string($xml);
print_r($showme);

的SimpleXMLElement

$showme = new SimpleXMLElement($xml);
echo $showme->asXML();