【问题标题】:Output raw XML using php使用 php 输出原始 XML
【发布时间】:2011-10-31 16:01:59
【问题描述】:

我想以类似于http://www.google.com/ig/api?weather=Mountain+View 但使用 PHP 的方式输出原始 xml。

我的网络服务器上有一个非常简单的 php 脚本:

<?php 

      $output = "<root><name>sample_name</name></root>";
      print ($output);
?> 

我在 Chrome/firefox 中只能看到“sample_name”。我想看:

<root>
     <name>sample_name</name>
</root>

我找不到这么简单的教程。

谢谢

【问题讨论】:

    标签: php xml


    【解决方案1】:

    默认情况下,PHP 将 Content-Type 设置为 text/html,因此浏览器会将您的 XML 文档显示为 HTML 页面。

    为了让浏览器将文档视为 XML,您必须设置内容类型:

    header('Content-Type: text/xml');
    

    在您的脚本中打印任何内容之前执行此操作。

    【讨论】:

    • 我刚刚意识到我从未将其标记为正确 - 对此感到抱歉
    【解决方案2】:

    您只看到“sample_name”,因为您没有指定您的输出是 XML,并且浏览器认为它是 HTML,因此您的 XML-Elements 被解释为 HTML-Elements。

    要查看原始 XML,您需要通过在 HTTP 标头中发送正确的内容类型来告诉浏览器您实际上是在发送 XML:

    header('Content-Type: application/xml');
    

    这需要先发送(输入代码),然后再输出其他内容。

    【讨论】:

      【解决方案3】:
      <?php 
      header('Content-Type: application/xml');
      $output = "<root><name>sample_name</name></root>";
      print ($output);
      ?> 
      

      【讨论】:

        【解决方案4】:

        只需按 Ctrl+U (Control+U),您的浏览器将在新选项卡下显示页面的原始源代码,无论是 XML 还是 HTML 或其他任何内容...

        【讨论】:

          【解决方案5】:

          为了完整起见,还没有人提到它,您还可以通过将&amp;lt; 转义为&amp;lt;&amp;gt;&amp;gt;&amp;amp;&amp;amp;。为此,请使用笨拙的名称htmlspecialchars function

          通常,您还希望在参数中保留空格,这可以通过将其包围在 &lt;pre&gt; 标记中来完成。因此,用于调试或包含示例的常用行是这样的:

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

          【讨论】:

          • 我认为的最佳答案...简单易行。
          猜你喜欢
          • 1970-01-01
          • 2015-03-03
          • 2016-03-22
          • 2011-04-06
          • 1970-01-01
          • 2020-12-21
          • 1970-01-01
          • 2011-05-24
          • 1970-01-01
          相关资源
          最近更新 更多