我遇到以下问题。
我想将数据从 mysql 数据库转换为 XML。实际上我用命令来做到这一点:
mysql --xml -i -u username -p tablename 'select * from performancedata LIMIT 10'> query.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>
...
为了能够解析此 XML,我必须将标签转换为列名称,例如时间=.我怎样才能做到最好?
我需要以下格式:
<row>
<time>2017-05-20 18:04:14</time>
<verbrauch>329</verbrauch>
<leistung>759</leistung>
<einspeisung>430</einspeisung>
<avgEinspeisung>0</avgEinspeisung>
</row>
最佳答案
您究竟是如何从 MySQL 中获取这些数据的?您是否确实从 PHP 中运行命令行命令来获取输出的 XML?或者您的命令行示例是否显示您如何从命令行执行此操作,而现在您想了解如何从 PHP 中执行此操作?
无论哪种方式,我认为最好的选择是自己进行转换,并简单地使用 MySQL 作为其应有的数据存储,而不是依赖 MySQL 来为您管理到 XML 的转换。您可以使用 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;
关于php - 在从 MySQL 导出的 XML 中使用标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44167645/