我希望以类似http://www.google.com/ig/api?weather=Mountain+View的方式输出原始xml但使用PHP。
我的网络服务器上有一个非常简单的PHP脚本:
<?php
$output = "<root><name>sample_name</name></root>";
print ($output);
?>
我在Chrome / firefox中看到的只是“sample_name”。我想看看:
<root>
<name>sample_name</name>
</root>
我找不到任何简单的教程。
由于
答案 0 :(得分:57)
默认情况下,PHP将Content-Type设置为text / html,因此浏览器将您的XML文档显示为HTML页面。
要让浏览器将文档视为XML,您必须设置内容类型:
header('Content-Type: text/xml');
在打印脚本中的任何内容之前执行此操作。
答案 1 :(得分:11)
<?php
header('Content-Type: application/xml');
$output = "<root><name>sample_name</name></root>";
print ($output);
?>
答案 2 :(得分:4)
您只看到“sample_name”,因为您没有指定输出是XML,浏览器认为它是HTML,因此您的XML元素被解释为HTML元素。
要查看原始XML,您需要通过在HTTP标头中发送正确的内容类型告诉浏览器您实际上是在发送XML:
header('Content-Type: application/xml');
这需要在您放弃其他任何内容之前发送(放入代码中)。
答案 3 :(得分:3)
出于完整性的考虑,您还可以通过将<
转义为<
,>
来输出HTML页面中的原始XML,这在HTML页面中还没有人提及。分别为>
和&
作为&
。为此,请使用笨拙的htmlspecialchars
function。
通常,您还需要保留参数中的空格,这可以通过将其括在<pre>
标记中来完成。因此,用于调试或包含示例的常见代码是:
echo '<pre>' . htmlspecialchars($raw_xml) . '</pre>';
答案 4 :(得分:1)
按Control-U。您的浏览器将在新标签下显示页面的原始源代码,无论是XML还是HTML或其他任何内容......