我正在创建一个 RESTful 网络服务,现在我正面临着新资源(Season
资源)的插入。这是 POST 请求的正文:
<request>
<Season>
<title>new title</title>
</Season>
</request>
这是有效执行插入的控制器:
public function add() {
// i feel shame for this line
$request = json_decode(json_encode((array) simplexml_load_string($this->request->input())), 1);
if (!empty($request)) {
$obj = compact("request");
if ($this->Season->save($obj['request'])) {
$output['status'] = Configure::read('WS_SUCCESS');
$output['message'] = 'OK';
} else {
$output['status'] = Configure::read('WS_GENERIC_ERROR');
$output['message'] = 'KO';
}
$this->set('output', $output);
}
$this->render('generic_response');
}
代码运行良好,但正如我在上面的代码片段中所写,我认为控制器的第一行真的很丑,所以问题是:如何将 XML 字符串解析为 PHP 数组?