我有以下代码显示xml页面,如URL“ourcustomersdb.php”。我需要使用以'ourcustomers.xml'结尾的URL显示相同的信息。 (希望有意义)
我的代码有效,但我需要最后一行代码来创建xml文档:
<?php
header ("Content-Type:text/xml");//Tell browser to expect xml
include ("config/init.php");
$query = "SELECT * FROM ourcustomers";
$result = mysqli_query($mysqli_conn, $query) or die ("Error in query: $query. ".mysql_error());
//Top of xml file
$_xml = '<?xml version="1.0"?>';
$_xml .="<ourcustomers>";
while($row = mysqli_fetch_array($result)) {
$_xml .="<ourcustomer>";
$_xml .="<id>".$row['id']."</id>";
$_xml .="<customer>".$row['customer']."</customer>";
$_xml .="<work_done>".$row['work_done']."</work_done>";
$_xml .="</ourcustomer>";
}
$_xml .="</ourcustomers>";
//Parse and create an xml object using the string
$xmlobj=new SimpleXMLElement($_xml);
//output
//print $xmlobj->asXML();
//write to a file
$xmlobj->asXML(ourcustomers.xml);
?>
似乎不起作用的行是$ xmlobj-&gt; asXML(ourcustomers.xml)。我需要这个来从数据库中收集信息来创建XML文件。如果我留在最后一个打印注释中它显示XML但是在页面mycustomersdb.php上,但是我需要将它显示在ourcustomers.xml上(希望这是有意义的!)。有人可以解释为什么这是我第一次尝试这样做,所以我还没有完全理解它。
任何帮助都会很棒!
答案 0 :(得分:1)
您需要在引号中包含ourcustomers.xml
,以便它是一个字符串。否则,您将收到语法错误。
$xmlobj->asXML('ourcustomers.xml');
此外,您不必使用SimpleXMLElement
来编写XML文件,只需使用file_put_contents
即可。
file_put_contents('ourcustomers.xml', $_xml);