SimpleXML到CSV,编写CSV标题?

时间:2012-10-14 01:07:20

标签: php xml csv simplexml fopen

我有一个简单的小脚本,可以抓取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标题。

我是否可以编辑脚本以包含标题?

由于

麦克

1 个答案:

答案 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);
}