我想从PHP创建/生成XML文档,但不能正常工作。
我在这里有这个代码:
<?php
$xml = new SimpleXMLElement("<evalues></evalues>");
while ($row = mysqli_fetch_array($result)){
$evalue = $xml->addChild('evalue', $row[1]);
$evalue->addAttribute('id', $row[0]);
}
echo $xml->saveXML();
?>
结果如下所示,在一个长行
中1513971901.549931756795512.970022842372553.270163414774046.390384216874570.370032821081734.920144539784.98
源代码看起来像这样,这是正确的,但我希望它在浏览器中看起来像XML文档,而不必查看源代码。
<?xml version="1.0"?>
<evalues>
<evalue id="5">1513971901.54993</evalue>
<evalue id="6">1756795512.97002</evalue>
<evalue id="7">2842372553.27016</evalue>
<evalue id="8">3414774046.39038</evalue>
<evalue id="9">4216874570.37003</evalue>
<evalue id="10">2821081734.92014</evalue>
<evalue id="11">4539784.98</evalue>
</evalues>
现在,当我右键单击页面并单击“保存页面为”时,它会在结尾显示.htm,但我希望它显示.xml
答案 0 :(得分:3)
只需为您的客户提供适当的内容类型:
header('Content-Type: text/xml');
答案 1 :(得分:1)
您应该将标题内容类型设置为text / xml,以便浏览器可以识别该文档是xml文档。
header('Content-Type: text/xml');
您应该在将任何内容输出到文档之前放置此代码。那是在print语句的任何回声之前。在这种情况下,您将代码放在循环之前。
由于没有样式表附加到您的xml文档,Internet Explorer仍可能将其显示为纯文本文件。您可以使用 Mozilla Firefox 来查看文档。
答案 2 :(得分:0)
如果您不想实际使用XML(只显示它),请将最后一行更改为
echo '<pre>', htmlspecialchars($xml->saveXML()), '</pre>';