我有以下问题。
我想将数据从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>
答案 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;