Я пытаюсь создать XML-строку в PHP, с циклом. Но я получаю ошибку синтаксического анализа.
Это строка XML, которую я пытаюсь создать:
$xmlstr = <<<XML
<?xml version='1.0'?>
<DOCUMENT>;
while ($stmt->fetch())
{
$xmlstr.=
<ORDER>
<ORDERNUMBER>$ordernumber</ORDERNUMBER>
<USERNAME>$username</USERNAME>
<EMAIL>$mail</EMAIL>
<STATUS>$status</STATUS>
</ORDER>;
};
$xmlstr.=
</DOCUMENT>
XML;
Если вы хотите вручную создать xml, вы можете либо добавить каждую строку:
$xmlstr = "<?xml version='1.0'?>";
$xmlstr .=" <DOCUMENT>";
while ($stmt->fetch())
{
$xmlstr.= " <ORDER>";
$xmlstr.= " <ORDERNUMBER>$ordernumber</ORDERNUMBER>";
$xmlstr.= " <USERNAME>$username</USERNAME>";
$xmlstr.= " <EMAIL>$mail</EMAIL>";
$xmlstr.= " <STATUS>$status</STATUS>";
$xmlstr.= " </ORDER>";
};
$xmlstr.= " </DOCUMENT>";
Или используйте буферизацию вывода:
//start output buffer
ob_start();
//exit php mode and write xml directly
?>
<?xml version='1.0'?>
<DOCUMENT>
<?php while ($stmt->fetch()):?>
<ORDER>
<ORDERNUMBER><?php echo $ordernumber;?></ORDERNUMBER>
<USERNAME><?php echo $username;?></USERNAME>
<EMAIL><?php echo $mail;?></EMAIL>
<STATUS><?php echo $status;?></STATUS>
</ORDER>;
<?php endwhile;?>
</DOCUMENT>
<?php
//save buffer to variable and flush buffer
$xmlstr = ob_get_clean();