All pastes #769321 Raw Edit

array2xml

public php v1 · immutable
#769321 ·published 2007-11-11 10:44 UTC
rendered paste body
<?php	class array2xml {				public $data;		public $dom_tree;				public  function __construct($array){			if(!is_array($array)){				throw new Exception('array2xml requires an array', 1);				unset($this);			}			if(!count($array)){				throw new Exception('array is empty', 2);				unset($this);			}						$this->data = new DOMDocument('1.0');						$this->dom_tree = $this->data->createElement('result');			$this->data->appendChild($this->dom_tree);			$this->recurse_node($array, $this->dom_tree);		}				private function recurse_node($data, $obj){			$i = 0;			foreach($data as $key=>$value){				if(is_array($value)){					$sub_obj[$i] = $this->data->createElement($key);					$obj->appendChild($sub_obj[$i]);					$this->recurse_node($value, $sub_obj[$i]);				} else {					$sub_obj[$i] = $this->data->createElement($key, $value);					$obj->appendChild($sub_obj[$i]);				}				$i++;			}		}		public function saveXML(){			return $this->data->saveXML();		}	}				$test = array(		'cat'=>'animal',		'container'=> array(			'thing'=>'stuff',			'thing2'=>'stuff2',					),		'dog'=>'dumb',	);	try {	$o_test = new array2xml($test);	} catch (Exception $e) {		echo $e->getMessage();	}	echo $o_test->saveXML();?>