Конверер массива в XML

 

PHP-class

class DataConverter {
    static function array2Xml($array, $container = 'values')
    {
        if(!is_array($array)) {
            throw new Exception('Param must be a array');
        }
        $xml = '';
        foreach($array as $key => $value) {
            if(is_integer($key)) {
                $key = self::getEntityNameFromContainer($container);
            }
            $xml .= (is_array($value)) ? self::array2Xml($value, $key) : self::value2Xml($value, $key);
        }
        return self::value2Xml($xml,$container);
    }

    static function value2Xml($value, $container)
    {
        return '<'.$container.'>'.$value.'</'.$container.'>';
    }

    static function getEntityNameFromContainer($containerName, $default = 'entity')
    {
        if('s' == substr($containerName, -1)) {
            return substr($containerName, 0, strlen($containerName) - 1);
        }
        if(strlen($containerName < 3)) {
            return $default;
        }
        $ending = substr($containerName, -3);
        if('ses' == $ending || 'oes' == $ending || 'xes' == $ending) {
            return substr($containerName, 0, strlen($containerName) - 2);
        }
        if(strlen($containerName < 4)) {
            return $default;
        }
        $ending = substr($containerName, -4);
        if('shes' == $ending || 'ches' == $ending) {
            return substr($containerName, 0, strlen($containerName) - 2);
        }
        return $default;
    }
}

$arr = array(1, 'foos' => array(bar, 2));

echo DataConverter::array2xml($arr, 'childs');


class array2xml
    {
        protected $xml;
        public function __construct( $elements, $rootnode = 'rootnode' )
        {
            $this->xml =new DOMDocument('1.0','iso-8859-1');
            $rootElement=$this->xml->createElement($rootnode,'');
            $this->xml->appendChild($rootElement);
            $this->transform($rootElement, $elements);
        }

        protected function transform($currentNode, $elements)
        {
            if( is_array($elements))
            {
                foreach($elements as $key=>$value)
                {
                    if(is_array($value))
                    {
                        $element=$this->xml->createElement($key,'');
                        $currentNode->appendChild($element);
                        $this->transform($element, $value);
                    }
                    else
                    {
                        $element=$this->xml->createElement($key,$value);
                        $currentNode->appendChild($element);
                    }

                }
            }
            else
            {
                return false;
            }
        }

        public function xml()
        {
            return $this->xml->saveXML();
        }
    }

скачать dle 11.0фильмы бесплатно
[xfgiven_url] [/xfgiven_url] [xfgiven_vbversion][/xfgiven_vbversion] [xfgiven_modversion][/xfgiven_modversion] [xfgiven_supported][/xfgiven_supported] [xfgiven_dbchanges][/xfgiven_dbchanges] [xfgiven_codechanges][/xfgiven_codechanges] [xfgiven_usesplugins][/xfgiven_usesplugins] [xfgiven_templateedit][/xfgiven_templateedit] [xfgiven_autotemplate][/xfgiven_autotemplate] [xfgiven_addfiles][/xfgiven_addfiles] [xfgiven_translations][/xfgiven_translations]

Дополнительная информация : Extra Info

Источник
Версия Vbulletin:Vbulletin version[xfvalue_vbversion]
Версия модуля:Mod version[xfvalue_modversion]
Поддержка: Supported:[xfvalue_supported]
Изменение БД: DB changes:[xfvalue_dbchanges]
Правка кода: Code changes:[xfvalue_codechanges]
Плагины: Use plugins:[xfvalue_usesplugins]
Правка шаблонов: Template edits:[xfvalue_templateedit]
Автоправка шаблонов: Auto Template:[xfvalue_autotemplate]
Доп.файлы: Add files:[xfvalue_addfiles]
Доп. языки: Translations:[xfvalue_translations]

File engine/modules/userbox.php not found.

Комментариев пока нет, добавьте свой!

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

{mainlink_code_links}
{mainlink_code_ads}
{sape_links}
File engine/modules/ed-shortbar/bar.php not found.