在MySQL的导出XML中使用标签

时间:2017-05-24 20:12:28

标签: php mysql xml

我有以下问题。

我想将数据从mysql数据库转换为XML。实际上我用命令执行此操作:

{type, payload, meta, error}

输出如下:         

mysql --xml -i -u username -p tablename 'select * from performancedata LIMIT 10'> query.xml;

...

为了解析这个XML,我必须将标记转换为列名,例如时间=。我怎么能做到最好?

我需要以下格式:

<resultset statement="select * from performancedata LIMIT 10
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <row>
    <field name="time">2017-05-20 18:04:14</field>
    <field name="verbrauch">329</field>
    <field name="leistung">759</field>
    <field name="einspeisung">430</field>
    <field name="avgEinspeisung">0</field>
</row>

1 个答案:

答案 0 :(得分:0)

你究竟是如何从MySQL中获取这些数据的?你是否真的在PHP中运行命令行命令来获取输出的XML?或者您的命令行示例是否显示了如何从命令行执行此操作,现在您想要从PHP中弄清楚如何执行此操作?

无论哪种方式,我认为最好的选择是,不是依靠MySQL来管理转换为XML,而是自己进行转换,只需使用MySQL作为数据存储。您可以使用simplexmlelement来管理到XML的转换,但是对于这样的简单示例,概念上更容易自己构建xml。如果您使用PDO之类的东西进行数据库连接,它将如下所示:

$qres = $pdo->query( "select * from performancedata LIMIT 10" );
$xml = '<row>';
foreach ( $qres->fetch( PDO::FETCH_ASSOC ) as $row )
{
    foreach ( $row as $name => $value )
        $xml .= "    <$name>$value</$name>";
}
$xml .= '</row>';

print $xml;