Я создал таблицу MySQL и хотел бы сохранить содержимое таблицы в файле XML для использования другими приложениями. Я могу получить доступ к данным и отобразить данные в окне браузера, но при сохранении с помощью DomDocument :: save ('thexmlfile.xml') я не вижу никаких новых файлов, созданных в папке каталога запущенного файла PHP.
вам нужно будет создать dom xml из данных mysql, а затем сохранить его в файле xml. Пример:
$sql = 'select * from messages'; $run = mysql_query($sql, $link); if( $run && mysql_num_rows( $run ) ) { $doc = new DOMDocument( '1.0' ); $doc->formatOutput = true; $doc->preserveWhiteSpace = true; $root = $doc->createElement( 'data' ); $doc->appendChild( $root ); while( ( $fetch = mysql_fetch_assoc( $run ) )!== false ) { $node = $doc->createElement( 'node' ); $root->appendChild( $node ); foreach( $fetch as $key => $value ) { createNodes( $key, $value, $doc, $node ); } } $doc->save("thexmlfile.xml"); } function createNodes( $key, $value, $doc, $node ) { $key = $doc->createElement( $key ); $node->appendChild( $key ); $key->appendChild( $doc->createTextNode( $value ) ); }
Теперь вы должны увидеть XML-файл.
Надеюсь, поможет.
Хм, ваш вопрос о DOM
, принятый ответ о DOM
, но вам, похоже, не нужны возможности этого, тогда брат SimpleXML
выглядит гораздо более прямолинейным … Я предполагаю, что ваша проблема уже давно, но просто для полноты:
$sql = 'select * from messages'; $run = mysql_query($sql, $link); if( $run && mysql_num_rows( $run ) ) { $xml = new SimpleXMLElement('<data/>'); while($fetch = mysql_fetch_assoc($run)) { $node = $root->addChild('node'); foreach( $fetch as $key => $value ) { $node->addChild($key,$value); } } $xml->asXML("thexmlfile.xml"); }