在PHP中创建包含多个项的XML字符串
我试图用PHP创建一个带有循环的XML字符串。但是我得到了一个解析错误 这是我试图创建的XML字符串:在PHP中创建包含多个项的XML字符串,php,xml,string,Php,Xml,String,我试图用PHP创建一个带有循环的XML字符串。但是我得到了一个解析错误 这是我试图创建的XML字符串: $xmlstr = <<<XML <?xml version='1.0'?> <DOCUMENT>; while ($stmt->fetch()) { $xmlstr.= <ORDER> <ORDERNUMBER>$ordernumber</ORDER
$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;
$xmlstr=如果要手动生成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>";
$xmlstr=”“;
$xmlstr.=”;
而($stmt->fetch())
{
$xmlstr.=”;
$xmlstr.=“$ordernumber”;
$xmlstr.=“$username”;
$xmlstr.=“$mail”;
$xmlstr.=“$status”;
$xmlstr.=”;
};
$xmlstr.=”;
或使用输出缓冲:
//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();
//启动输出缓冲区
ob_start();
//退出php模式并直接编写xml
?>
;
为什么不使用或?这就像你试图使用一个heredoc,但你从来没有开始过,只是结束了它…你试图在一个循环中继续它…这是行不通的。