Как экспортировать в xml?

Добрый вечер . Написал скрипт экспортирования данных из бд в XML файл , но проблема в том ,что записывается только 1 запись .
Вот результат!
<?xml version="1.0"?>
<data>
	<time>21:16</time>
	<day>2021-01-26</day>
	<price>6000</price>
	<description>Delete project AND Serch a PHP learning</description>
</data>

Вот php код
<?php 

include('connect.php');

	if (isset($_POST['xml'])) {
		
		$sql = mysqli_query($connection,'SELECT * FROM date');
		$dom = new domDocument('1.0');

		while($res = mysqli_fetch_assoc($sql)) {
			
			$time = substr($res['time'], 0 ,5);
			$dom->loadXML('<data>
	<time>'.$time.'</time>
	<day>'.$res['date'].'</day>
	<price>'.$res['price'].'</price>
	<description>'.$res['description'].'</description>
</data>');
				}
		
	}
file_put_contents('newxml.xml', $dom->saveXML());
  • Вопрос задан
  • 231 просмотр
Пригласить эксперта
Ответы на вопрос 1
@none7
loadXml так не работает. К тому же в XML-документе должен быть только один корневой элемент, как в HTML не может быть двух тегов <html>. Пример:
function getXmlRow($xml, $time, $day, $price, $description) {
    $names = array('time', 'day', 'price', 'description');
    $ret = $xml->createElement('date');
    foreach($names as $name){
        $ret->appendChild($xml->createElement($name, $$name));
    }
    return $ret;
}
$xml = new DomDocument('1.0', 'UTF-8');
$dates = $xml->createElement('dates');

for($i=0; $i <= 3; $i++)
    $dates->appendChild(getXmlRow($xml, '21:16', '2021-01-26', 6000, 'Delete project AND Serch a PHP learning'));

$xml->appendChild($dates);
echo $xml->saveXML();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы