Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数据库信息输出为XML_Php_Xml - Fatal编程技术网

Php 将数据库信息输出为XML

Php 将数据库信息输出为XML,php,xml,Php,Xml,我尝试了4种不同的方法来提取数据库信息并将其显示为XML。但是,当我单击指定的按钮时,它会显示错误: error on line 2 at column 1: Document is empty 我的连接很好,所以这不是问题,但我以前从未尝试过,所以我一定忽略了一些东西 Generatexml.php <?php header('Content-type: text/xml'); include 'connection.php'; $query = "SELECT * FROM user

我尝试了4种不同的方法来提取数据库信息并将其显示为XML。但是,当我单击指定的按钮时,它会显示错误:

error on line 2 at column 1: Document is empty
我的连接很好,所以这不是问题,但我以前从未尝试过,所以我一定忽略了一些东西

Generatexml.php

<?php
header('Content-type: text/xml');
include 'connection.php';
$query = "SELECT * FROM users"; 
$result = mysqli_query($mysqli_conn, $query) or die ("Error in query: $query. ".mysql_error()); 
//Top of xml file
$_xml .="<people>"; 
    while($row = mysqli_fetch_array($result)) { 
        $_xml .="<person>"; 
        $_xml .="<firstname>".$row['FirstName']."</firstname>"; 
        $_xml .="<lastname>".$row['LastName']."</lastname>"; 
        $_xml .="<username>".$row['Username']."</username>"; 
        $_xml .="<password>".$row['Password']."</password>";
        $_xml .="<id>".$row['P_Id']."</id>";  
        $_xml .="</person>"; 
        } 
        $_xml .="</people>"; 
//Parse and create an xml object using the string
$xmlobj=new SimpleXMLElement($_xml);
//write to an XML file
$xmlobj->asXML('people.xml');
echo $xmlobj->asXML();
?>
asXML('people.xml');
echo$xmlobj->asXML();
?>
编辑:我使用了另一种方法,我能够提取数据库信息并显示它,但它没有以XML格式显示

<?php
include 'connection.php';

//query the database    
$sqlQuery = "SELECT * FROM users";

//run query
if ($result = mysqli_query($db, $sqlQuery)) {
header('Content-type: text/xml');
echo '<?xml version="1.0" encoding="utf-8"?>';
echo '<results>';
echo '<people>';
    //fetch associative array 
while ($row = mysqli_fetch_assoc($result)) {
echo '<person>';
echo '<firstname>' . $row["FirstName"] . '</firstname>';
echo '<lastname>' . $row["LastName"] . '</lastname>';
echo '</person>';
}
echo '</people>';
}
//close the database connection
$db->close();
echo '</results>';
?>
close();
回声';
?>

您正在写入文件

您没有将该文件的内容发送到浏览器

echo $xmlonj->asXML();

为什么要通过将字符串混合在一起,然后使用XML库将字符串转换为DOM,然后立即转换为文本来生成XML?我只是遵循了指南,但直到出现同样的错误,运气都不太好。这说明第2行的标题有问题。您确定这是关于PHP源代码第2行的PHP错误消息,而不是关于生成的XML第2行的浏览器错误消息吗?可能您的字符串混搭产生了无效的XML(我不知道,您没有提供
$\u XML
的值)。很抱歉,我不完全确定您的意思。该页给出了错误。该页包含以下错误:---第1列第2行的错误:文档为空-----下面是第一个错误之前的页面呈现。---然后呈现为空白。这是第二种情况。您的XML文档无效。PHP的第2行很好。通过混合字符串生成的XML有问题。查看
$\uXML
的值。通过类似xmllint的方式传递该值。好的,我将检查它。你是什么意思把字符串混在一起?我还能如何格式化这个?