2012-03-29 88 views
0

我嘗試用php創建一個xml文件。什麼是用PHP創建大型XML文件的最佳方式?

由於文件是mySQL數據庫的摘錄,記錄集可能包含大約90000行。 所以生成xml文件很慢,大約在50s左右。

我不想做轉儲,但只創建一個文件發送到Flashbuilder來創建數據提供者。

我嘗試用幾個過程:

DOMDocument 
XmlWriter 
SimpleXMLElement 

但隨着這些方法,時間創建文件是相同的。

我做了服務器端的另一個測試,這項指令:ini_set('memory_limit','-1');

你知道的另一種方法,編寫大型XML文件太速度。

感謝您的幫助。

回答

4

您確定要通過PHP路由數據嗎?也許你可以使用mysqldump的能力來創建XML輸出:參見MySQL docu

mysqldump -X yourDb yourTable 
+0

+1不錯 - 總是使用正確的工具來完成工作....但是你知道OP會抱怨它不是「他們的格式」! – ManseUK 2012-03-29 09:44:01

+1

+1這工作正常....讓MySQL導出自己的數據 – Baba 2012-03-29 09:51:48

0

mysqldump將是最好的。

否則取決於您是否具有特定的文件格式。最好的方法可能只是迭代結果並用php「手動」構建文件。 phpMyAdmin也可以導出xml。很簡單的東西是......

$rows = '<? xml... ?>'; 
$query = mysql_query(); 
while($row = mysql_fetch_assoc($query)){ 
    $rows .= "<row>\n"; 
    foreach($row as $tag=>$val){ 
    $rows.= "<$tag>$val</$tag>\n"; 
    } 
    $rows .= "</row>\n"; 
} 

file_put_contents('sql.xml',$rows); 

,但你很可能會試圖做一些事情,只是需要時間來處理,而PHP不是最好的工具,即mysqldump

+0

謝謝,但我的目標是不做轉儲,但只顯示Flex數據網格上的數據。 – Flex60460 2012-04-02 14:49:32

+0

然後,只需使用類似於上面的內容,並使其吐出適當的名稱空間:標記。 – 2012-04-09 17:00:11

+0

我找到了一個解決方案:使用mysql concat命令! – Flex60460 2012-04-26 12:59:44

相關問題