/* * Classe Xml2array * * Gera array a partir de elementos de um XML * Utiliza funções domxml * * @autor Apoena Machado Cunha - apoena at apoena dot net - www.apoena.net * @date 2004/11/10 * @version 0.1 */ class Xml2Array{ var $elements; //array de elementos var $file; // Arquivo xml var $array; // Array com o XML function setFile( $_file ){ $this->file = $_file; } function setElements( $_array ){ $this->elements = $_array; } function setArray(){ $XML = domxml_open_file( $this->file ); $XML->document_element(); // Define elementos foreach ($this->elements as $key => $value){ $Array[$value] = $XML->get_elements_by_tagname($value) ; } // Insere dados no elementos foreach ($Array as $key => $value){ foreach ($Array[$key] as $k => $v){ //if( $c > 1){ $this->array[$k][$v->tagname] = $v->get_content(); //} } } } function getArray(){ $this->setArray(); return $this->array; } function getArrayFromElement( $element ){ } }// fim da classe Xml2Array /********************************************************* Teste da Classe - testando com noticias em XML, RSS, ATOM **********************************************************/ if( !empty($_GET['f']) ){ $file = $_GET['f']; }else{ $file = 'http://br-linux.org/main/index.rdf'; } // Instanciando a classe $XML = NEW Xml2Array(); // Definindo documento $XML->setFile($file); // Exemplo de Arrays com tags XML $rss = array('title','link', 'description', 'lastBuildDate'); $xml = array('dia','mes','ano','hora','url','titulo','texto'); $atom = array('modified','author','name','title','link','id'); // Setando elementos $XML->setElements( $rss ); // Imprimindo echo '
'; echo ''; echo '
'; echo 'Documento XML '. $file . ''; echo '
'; echo 'Elementos (tags):
'; print_r( $XML->elements ); echo '
'; echo 'Array Gerado
'; print_r( $XML->getArray() ); echo '