2012-10-14 68 views
0

我有一個簡單的小腳本來抓取XML並將其轉換爲CSV。但是它不寫入標題。誰會知道如何編寫標題?SimpleXML轉換爲CSV,編寫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

可以使用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); 
} 
+0

輝煌,謝謝我會給你一個去! –