2013-08-27 29 views
0

我在PHP初學者的一部分,請幫我out.This是我的PHP腳本,幫助生成XML文件如何保存在一個文件中的XML數據

<?php 

    mysql_connect('localhost', 'root', 'root'); 
    mysql_select_db('dcu'); 


    $sql = "SELECT meterId FROM meter"; 
    $res = mysql_query($sql); 
    $xml = new XMLWriter(); 

$xml->openURI("php://output"); 
$xml->startDocument(); 
$xml->setIndent(true); 

$xml->startElement('meteries'); 
while ($row = mysql_fetch_assoc($res)) { 


    $xml->startElement("meterId"); 
    $xml->writeRaw($row['meterId']); 
    $xml->endElement(); 

    } 

$xml->endElement(); 


    header('Content-type: text/xml'); 
    $xml->flush(); 
    ?> 
    After running this php script i got this xml file in my terminal as well as in browser 

    <?xml version="1.0"?> 
    <cemeteries> 
<meterId>1</meterId> 
<meterId>2</meterId> 
</cemeteries> 

我的問題是如何保存這在一些其他的XML文件生成XML

感謝

回答

1

,如果你想保存你可以像這樣在服務器上:

<?php 

mysql_connect('localhost', 'root', 'root'); 
mysql_select_db('dcu'); 

$sql = "SELECT meterId FROM meter"; 
$res = mysql_query($sql); 
$xml = new XMLWriter(); 

$xml->openMemory(); 
$xml->startDocument(); 
$xml->setIndent(true); 

$xml->startElement('meteries'); 

while ($row = mysql_fetch_assoc($res)) 
{ 
    $xml->startElement("meterId"); 
    $xml->writeRaw($row['meterId']); 
    $xml->endElement(); 
} 

$xml->endElement(); 

$content = $xml->flush(); 

$fp = fopen('data.xml', 'w'); 
fwrite($fp, $content); 
fclose($fp); 

header('Content-type: text/xml'); 
echo $content; 

論模式的fopen()「W」如果文件不存在,PHP將嘗試創建它。確保PHP有足夠的寫權限。

+0

做了更改後,文件被創建,但在該文件中沒有什麼是他們的答案當我嘗試在瀏覽器上運行它得到了這個錯誤XML解析錯誤:垃圾文件元素後 位置:http:// localhost/third。 PHP 線6號,第1列: – user2663217

+0

感謝您的幫助,但它不工作 – user2663217

+0

看來flush()方法不返回使用openURI()時,XML文件的內容,而不是它返回的書面數字節。當您使用openMemory()它應該返回XML內容。我已經調整了我的答案以適應需求。祝你好運! –

相關問題