我生成XML文档的PHP代码不能正常工作

时间:2010-11-12 02:35:45

标签: php xml

我想从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

3 个答案:

答案 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>';