делаем xml с помощью php

Тема в разделе "PHP", создана пользователем guru85, 19 май 2011.

Модераторы: latteo
  1. guru85

    guru85 Постоялец

    Регистр.:
    24 мар 2010
    Сообщения:
    134
    Симпатии:
    3
    вот скрипт
    PHP:
    <?php
    class Array2XML {
        private 
    $writer;
        private 
    $version '1.0';
        private 
    $encoding 'UTF-8';
        private 
    $rootName 'video';
        function 
    __construct() {
            
    $this->writer = new XMLWriter();
        }
        public function 
    convert($data) {
            
    $this->writer->openMemory();
            
    $this->writer->startDocument($this->version$this->encoding);
            
    $this->writer->startElement($this->rootName);
            if (
    is_array($data)) {
                
    $this->getXML($data);
            }
            
    $this->writer->endElement();
            return 
    $this->writer->outputMemory();
        }
        public function 
    setVersion($version) {
            
    $this->version $version;
        }
        public function 
    setEncoding($encoding) {
            
    $this->encoding $encoding;
        }
        public function 
    setRootName($rootName) {
            
    $this->rootName $rootName;
        }
        private function 
    getXML($data) {
            foreach (
    $data as $key => $val) {
                if (
    is_numeric($key)) {
                    
    $key 'key'.$key;
                }
                if (
    is_array($val)) {
                    
    $this->writer->startElement($key);
                    
    $this->getXML($val);
                    
    $this->writer->endElement();
                }
                else {
                    
    $this->writer->writeElement($key$val);
                }
            }
        }
    }
        
    header('Content-type: application/xml');
        
    $data = array(
            
    'updated' => 111,
            
    'video' => array(
                
    'title' => 'test test',
                
    'description' => 'test test',
                
    'join_url' => 'test test',
                
    'clip_url' => 'test test',
                
    'screen_url' => 'test test',
                
    'clips' => array(
                    
    'clip' => array(
                    
    'duration' => 150,
                    
    'width' => 'objName',
                    
    'height' => 'objName',
                    
    'flv' => 'objName'
                    
    )
                )
            )
        );
        
    $converter = new Array2XML();
        
    $xmlStr $converter->convert($data);
        echo 
    $xmlStr;
    вот проблема: надо мне получить из него вот это к примеру http://www.kinkydollars.com/feed/tubex.php ну естественно со своими параметрами. не могу сообразить, как такое сделать? не получается у меня много тегов video, только один. толи цикл, толи массив, а может поспать леч?
     
  2. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    363
    Симпатии:
    117
    а как этой штукой задавать <![CDATA[ или атрибуты?
    ИМХО делай через DOMDocument, кода будет больше но зато полное управление над построением XML