Я создал таблицу MySQL и хотел бы сохранить содержимое таблицы в XML-файле для использования другими приложениями. Я могу получить доступ к данным и отобразить данные в окне браузера, но при сохранении с помощью DomDocument :: save ('thexmlfile.xml') я не вижу никаких новых файлов, созданных в папке каталога запущенного файла PHP.Использование PHP DOM для создания XML-файлов из данных MySQL
0
A
ответ
0
вам придется создать XML DOM из данных тузд, а затем сохранить его в XML-file.An Например:
$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.
Надеюсь, это помогает.
0
Хм, ваш вопрос о DOM
, принятый ответ о DOM
, но вы, кажется, не нуждаются в возможности этого, то брат Libxml в 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");
}
Смежные вопросы
- 1. Использование MySQL и PHP для создания редактируемой базы данных ввода
- 2. Использование SaltStack для создания базы данных Mysql
- 3. Использование DOM PHP для получения данных из таблицы HTML
- 4. Использование PHP для динамического создания тега select из записи MySQL
- 5. Использование MYSQL для создания резюме
- 6. Использование Еогеасп PHP для создания массива значений из данных JSON
- 7. Использование PHP для создания XML-файла из данных таблицы SQL
- 8. Использование PHP операторов для выбора данных из базы данных MySQL
- 9. PHP для создания файла XML из данных Mysql?
- 10. Использование базы данных MYSQL для создания тегов div
- 11. Использование PHP для создания архива
- 12. Использование PHP данных в MySQL
- 13. Использование PHP для создания отображения времени из эпохи Прошлое
- 14. Использование PHP для обновления базы данных MYSQL
- 15. Использование php для обновления базы данных mysql
- 16. Использование php и doveadm для создания пароля
- 17. Использование cURL и dom для очистки данных с помощью php
- 18. Использование индекса для создания PHP PDO Query?
- 19. PHP/MySQL - использование JOIN для извлечения данных из другой таблицы
- 20. Использование PHP для отображения и сортировки данных из MySQL
- 21. PHP/MySQL/Использование строк для выбора из базы данных
- 22. Использование PHP для создания динамических форм с MySQL
- 23. Использование PHP Printf для создания SQL запросов
- 24. Использование списка для создания столбцов в MySQL
- 25. Использование класса java для создания базы данных
- 26. Использование preg_replace_callback для создания ссылок из MySQL Query! Help Please
- 27. PHP Использование DOM для вывода XLS
- 28. Использование docker-compose для создания схемы/базы данных MySQL
- 29. Использование функций php mhash для создания ключа из строки
- 30. Использование PHP dom для получения дочерних элементов
Спасибо @Pushpesh. проблема в том, что я сейчас получаю сообщение об ошибке "Ошибка анализа XML: ошибка синтаксиса Местонахождение: protocal: //localhost/practice/displayQueue.php Номер строки 1, столбец 1: данные не найдены." Это также показано, когда я комментирую строку $ doc-> save ("thexmlfile.xml") и добавляю echo doc-> saveXML(); ^ –
ОК, у вас есть структура таблицы mysql, которую я привел в моем примере ... или если у вас есть отдельная структура, отправьте ее здесь ... я сделаю соответствующие изменения ... –
Я создал таблицу, используя CREATE TABLE 'messages' ( ' id' INT (10) без знака NOT NULL AUTO_INCREMENT, 'senderNumber' VARCHAR (50) по умолчанию NULL, ' smsMessage' VARCHAR (1600) по умолчанию NULL, 'sentTime' метка NULL по умолчанию CURRENT_TIMESTAMP, ' receivedTime' datetime default NULL, 'operator' varchar (50) default NULL, ' messageType' varchar (50) default 'SMS: TEXT', ПЕРВИЧНЫЙ КЛЮЧ ('id') ) ENGINE = MyISAM; Теперь при отображении я просто хочу отобразить 3 поля senderNumber, smsMessage и timeReceived. –