我有一个简单的小脚本,可以抓取XML并将其转换为CSV。但是它不会写标题。有人会知道如何写标题吗?
$file='example.xml';
if (file_exists($file)) {
$xml = simplexml_load_file($file);
$f = fopen('newfile.csv', 'w');
foreach ($xml->Information as $information) {
fputcsv($f, get_object_vars($information),',','"');
}
fclose($f);
}
这会将<Information>
的子元素的所有内容放在Excel的漂亮列中。但它不会将元素名称写为CSV标题。
我是否可以编辑脚本以包含标题?
由于
麦克
答案 0 :(得分:1)
您可以使用SimpleXMLElement::getName()函数从第一组数据中获取元素名称,并使用它来编写CSV标题。
$file='example.xml';
if (file_exists($file)) {
$xml = simplexml_load_file($file);
$f = fopen('newfile.csv', 'w');
// array to hold the field names
$headers = array();
// loop through the first set of fields to get names
foreach ($xml->Information->children() as $field) {
// put the field name into array
$headers[] = $field->getName();
}
// print headers to CSV
fputcsv($f, $headers, ',', '"');
foreach ($xml->Information as $information) {
fputcsv($f, get_object_vars($information), ',', '"');
}
fclose($f);
}