2015-01-11 185 views
0

我有以下代碼顯示一個xml頁面,就像URL'ourcustomersdb.php'一樣。我需要以「ourcustomers.xml」結尾的URL顯示相同的信息。 (希望是有道理的)從php頁面創建XML文檔

我作品的代碼,但我需要的最後一行代碼來創建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-> asXML(ourcustomers.xml)。我需要這個從數據庫收集的信息來創建一個XML文件。如果我在最後一次打印評論中留言,它會顯示XML,但是在頁面ourcustomersdb.php中,但我需要將它顯示在ourcustomers.xml中(希望這是有道理的!)。有人可以解釋爲什麼,因爲這是我第一次嘗試這樣做,所以我沒有完全理解它。

任何幫助將是偉大的!

+0

幫助:啓用錯誤報告,並記錄到你的開發機器上的最高水平,首先將代碼置於一個問題之前解決所有錯誤,警告,通知和嚴格的警告。此外,不要發佈死代碼(例如,您註釋掉的那些代碼行)。對於一個問題是非常有用的,不要發佈你的實際代碼,而是從頭開始創建一個新的例子,用*作爲必要的小代碼展示你的問題*並且包含所有數據(並且根據需要儘可能少),所以很清楚你詢問一下,你就不會分心。 – hakre

回答

1

您需要用引號括起ourcustomers.xml,以便它是一個字符串。否則,你會得到一個語法錯誤。

$xmlobj->asXML('ourcustomers.xml'); 

而且,你不必使用SimpleXMLElement寫一個XML文件,你可以只使用file_put_contents

file_put_contents('ourcustomers.xml', $_xml); 
+0

這就是它的工作。我以爲我嘗試過,但我一定忘了評論'印刷'。謝謝! – alwaystrying