输出XML文件| API与CodeIgniter


Output XML file | API with CodeIgniter

我正在使用CodeIgniter框架开发API。

-

  1. 我的应用程序将调用我的API http://myapi.com/controler?parA=valA&parB=valB
  2. 我的控制器将_GET请求并处理它
  3. 控制器将使用$this->load->view('response',$data, true)调用视图。

My View File -

Response.php

<response>
    <status>
        200
    </status>
    <mode>
        VisaCreditCard
    </mode>
    <options>
        <option name="Transfer" url="http://myapi.com/controller/transfer?id=8230&reason=illness" />
        <option name="Cancel" url="http://myapi.com/controller/cancel?id=3934"/>
        <option name="New Booking" url="http://myapi.com/controller/book_new" />
    </options>
</response>

请注意,标签名称与我在应用程序中使用的相同,尽管其中的值是模糊的。这是因为我想让你们注意到<options><option/>

现在的问题是,当我调用API时,CI会完成所有的工作然后给出这个视图我在屏幕上看到的只有

200 VisaCreditCard

当我检查查看页面的源代码时,我得到了我想要的,即我在response .php文件中的文本 当我调用那个url时,我希望在我的输出中得到的源代码是可见的。


服务器信息

    Ubuntu 13.04
  • 输入

  • PHP 5
  • Codeigniter 2.1.3(重写PHP短标签- FALSE &


经过近7个小时的艰苦搜索,实验和痛苦终于有了结果。


我做了两件事就解决了。

  1. 设置声明Content-Type:text/xml的头信息。
  2. 省略第三个参数$this->load->view('response',$data)
现在我的代码是:
<?php header ("Content-Type:text/xml"); ?>
<response>
    <status>
        200
    </status>
    <mode>
        VisaCreditCard
    </mode>
    <options>
        <option name="Transfer" url="http://myapi.com/controller/transfer?id=8230&reason=illness" />
        <option name="Cancel" url="http://myapi.com/controller/cancel?id=3934"/>
        <option name="New Booking" url="http://myapi.com/controller/book_new" />
    </options>
</response>

并且,不要忘记将&转换为&amp;,否则您将再次陷入错误