【发布时间】:2019-08-29 02:42:56
【问题描述】:
我正在尝试使用下面的代码将 XML 转换为 CSV,但它仅在只有一行时才有效。多个条目将仅显示标题/列名。
这就是我的 XML 的样子:
<Cars>
<Type>B</Type>
<Car>
<Brand>Car1</Brand>
<Model>M1</Model>
<Year>2010</Year>
<Age>9</Age>
<Desciption>test</Desciption>
</Car>
</Cars>
<Cars>
<Type>B</Type>
<Car>
<Brand>Car2</Brand>
<Model>M2</Model>
<Year>2015</Year>
<Age>4</Age>
<Desciption>test</Desciption>
</Car>
</Cars>
我的代码:
$filexml='cars.xml';
$cname=array();
$cname[] = 'Brand';
$cname[] = 'Model';
$cname[] = 'Year';
$cname[] = 'Age';
$cname[] = 'Desciption';
if (file_exists($filexml)) {
$xml = simplexml_load_file($filexml);
$f = fopen('cars.csv', 'w') or die('Can\'t create .csv file, try again later.');
fputcsv($f, $cname);
foreach ($xml->Car as $Car) {
fputcsv($f, get_object_vars($Car),',','"');
}
fclose($f);
}
【问题讨论】: