我正在尝试使用PHP以XML格式显示数据库的内容。我能够显示数据,但是我无法正确格式化。任何建议都将不胜感激。
我想要实现的输出。
<people>
<person>
<id>111</id>
<first_name>sara</first_name>
<last_name>smith</last_name>
<email>ssmith@mail.com</email >
</person >
</people>
输出目前是这样的:
我的PHP代码
<?php
// Create con
$con=mysqli_connect("HOST","USERNAME","PASSWORD","DB");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//get student ID from URL
$STU_ID = $_GET['id'];
$sql = "SELECT * FROM table";
$res = mysqli_query($con, $sql);
$xml = new XMLWriter();
$xml->openURI("php://output");
$xml->startDocument();
$xml->setIndent(true);
$xml->startElement('people');
while ($row = mysqli_fetch_assoc($res)) {
$xml->startElement("person");
$xml->writeElement("id", $row['id']);
$xml->writeElement("first_name", $row['first_name']);
$xml->writeElement("last_name", $row['last_name']);
$xml->writeElement("email", $row['email']);
$xml->writeRaw($row['person']);
$xml->endElement();
}
$xml->endElement();
header('Content-type: text/xml');
$xml->flush();
mysqli_free_result($res);
// Close connections
mysqli_close($con);
?>
答案 0 :(得分:2)
根据以上评论......
在浏览器中查看html或xml时,不会呈现斜角括号内的未知标记。您可以使用浏览器的查看来源选项查看它们。
正如Josh Taylor在评论中指出的那样,你应该能够输出
header('Content-type: text/xml');
但请参阅http://php.net/manual/en/function.header.php中的这条说明:
请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。