这是我用来将其转换为 csv.which 工作正常的代码。
function xml2array($file) {
$string = file_get_contents($file);
$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parse_into_struct($parser, $string, $vals, $index);
xml_parser_free($parser);
$ary=array();
$i=-1;
foreach ($vals as $r){
if($r['level'] == 1)continue;
if($r['level'] == 2 && $r['type'] == "open"){
++$i;
continue;
}
$ary[$i][$r['tag']] = @$r['value'];
}
return $ary;
}
$array=xml2array('inventory.xml');
$outstream = fopen('inventory.csv','w');
$header=false;
foreach($array as $k=>$details){
if(!$header){
fputcsv($outstream,$details);
$header=true;
}
fputcsv($outstream,$details);
}
fclose($outstream);
问题:我在 csv 中获得了正确的数据,但在生成的 csv 中没有获得 XML 标头(节点名称)。缺少什么?帮帮我