使用php输出原始XML

时间:2011-08-21 17:00:20

标签: php xml

我希望以类似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>

我找不到任何简单的教程。

由于

5 个答案:

答案 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)

出于完整性的考虑,您还可以通过将<转义为&lt;>来输出HTML页面中的原始XML,这在HTML页面中还没有人提及。分别为&gt;&作为&amp;。为此,请使用笨拙的htmlspecialchars function

通常,您还需要保留参数中的空格,这可以通过将其括在<pre>标记中来完成。因此,用于调试或包含示例的常见代码是:

 echo '<pre>' . htmlspecialchars($raw_xml) . '</pre>';

答案 4 :(得分:1)

按Control-U。您的浏览器将在新标签下显示页面的原始源代码,无论是XML还是HTML或其他任何内容......