2012-03-29 83 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

相关问题