【发布时间】:2026-01-03 20:55:01
【问题描述】:
我有这个代码:
<?php
header('Content-type: text/xml');
$xmlout = "<?xml version=\"1.0\" ?>\n";
$xmlout .= "<persons>\n";
$db = new PDO('mysql:host=localhost;dbname=xxx','root','');
$stmt = $db->prepare("select * from users");
$stmt->execute();
while($row = $stmt->fetch()){
$xmlout .= "\t<person>\n";
$xmlout .= "\t\t<id>".$row['id']."</id>\n";
$xmlout .= "\t\t<username>".$row['username']."</username>\n";
$xmlout .= "\t\t<password>".$row['password']."</password>\n";
$xmlout .= "\t\t<realname>".$row['realname']."</realname>\n";
$xmlout .= "\t\t<surname>".$row['surname']."</surname>\n";
$xmlout .= "\t\t<email>".$row['email']."</email>\n";
$xmlout .= "\t\t<created>".$row['created']."</created>\n";
$xmlout .= "\t\t<admin>".$row['admin']."</admin>\n";
$xmlout .= "\t</person>\n";
}
$xmlout .= "</persons>";
echo $xmlout;
?>
它不起作用,它有这个错误:
第 2 行第 1 列的错误:文档末尾的额外内容 下面是出现第一个错误之前的页面渲染。
有谁知道问题出在哪里?
【问题讨论】:
-
删除
?>或在echo之后添加exit;。 -
你不应该手动创建 XML,你应该使用类似SimpleXML
-
我删除 ?> 或退出,它没有帮助......我手动执行此操作,因为我是 xml 的初学者,这种方式在我看来是最简单的方式
-
实际上,XMLWriter 正是用于此类工作的 API。 SimpleXML 更适合读取简单、小型的 XML 结构。