为应用响应创建XML模板

时间:2015-06-02 05:29:46

标签: php xml slim

所以这是我的代码......

library(RCurl)
url = "http://math.ucdenver.edu/RTutorial/titanic.txt"
xx = getURL(url, nobody=1L, header=1L)
strsplit(xx, "\r\n")

我想知道如何创建可以处理输入的chkdb.xml模板。 然后将输出以下内容..

$app->post(
  '/chk_db',
    function () use ($app){
      require_once 'lib/mysql.php';
      $dx = connect_db('MyPhotos');

      //XML RESPONSE
      $app->response->setStatus(0);
      $res = $app->response();
      $res['Content-Type'] = 'application/xml';
      $view = $app->view();
      $view->setTemplatesDirectory('./');
      $oArray = array("Status"=> $dx.status, "code" => $dx.code);
      return $app->render('chkdb.xml', $oArray);
  }
);

提前致谢....

编辑:已回答..谢谢alexw

1 个答案:

答案 0 :(得分:1)

如果使用Twig,则可以在双花括号占位符中使用数组键。如果您的somearray是:

$somearray = [
    "status" => "success",
    "code" => 0,
    "messages" => [
        "msg1" => "Hello",
        "msg2" => "Goodbye"
    ]
];

然后您只需制作XML模板(template.xml):

<MyPhotos>
   <Status>{{status}}</Status>
   <code>{{code}}</code>
   <messages>
   {% for message in messages %}
      <message>{{message}}</message>
   {% endfor %}
   </messages>
</MyPhotos>

渲染它:

$app->render("template.xml", $somearray);

要将Twig与Slim一起使用,您需要包含Slim-Views package。配置说明在README中。