Вход Регистрация
Файл: protected/extensions/yii-rest-api/library/rest/service/renderer/adapters/Xml.php
Строк: 37
<?php
/**
 * Yii RESTful API
 *
 * @link      https://github.com/paysio/yii-rest-api
 * @copyright Copyright (c) 2012 Pays I/O Ltd. (http://pays.io)
 * @license   http://www.opensource.org/licenses/mit-license.php MIT license
 * @package   REST_Service
 */

namespace restservicerendereradapters;

use 
restservicerendererAdapterInterface;

class 
Xml implements AdapterInterface
{
    
/**
     * @param $data
     * @param bool $return
     * @return string|void
     */
    
public function render($data, $return = false)
    {
        
$xml = new SimpleXMLElement('<response/>');
        
$this->arrayToXml($data, $xml);

        
$result = $xml->asXML();

        if (
$return) {
            return 
$result;
        }

        
header('Content-type: application/xhtml+xml');
        echo 
$result;
    }

    public function 
arrayToXml($data, &$xml)
    {
        foreach (
$data as $key => $value) {
            if (
is_array($value)) {
                if (isset(
$value['object'])) {
                    
$subnode = $xml->addChild((string)$value['object']);
                    unset(
$value['object']);
                } else {
                    
$subnode = $xml->addChild(is_numeric($key) ? "item_$key" : (string)$key);
                }

                
$this->arrayToXml($value, $subnode);
            } else {
                
$xml->addChild("$key","$value");
            }
        }
    }
}
Онлайн: 2
Реклама