所以我有一个类似于此的 XML 文件:
<container>
<example1>some text</example1>
<example2>some text</example2>
<example3>some text</example3>
<example4>some text</example4>
</container>
<container>
<example1>some text</example1>
<example2>some text</example2>
<example4>some text</example4>
</container>
基本上,如果example3
不包含任何信息,XML 作者决定将其完全省略。问题是,当我使用我的脚本转换为 CSV 时,这个特定的 XML 文件无法正确转换为 CSV,因为第二个中的文本显示在CSV 文件example4
的标题下。example3
这是我通常必须与其他 XML 文件一起使用的 PHP 脚本。
$file='input.xml';
if (file_exists($file)) {
$xml = simplexml_load_file($file);
$f = fopen('output.csv', 'w');
// array to hold the field names
$headers = array();
// loop through the first set of fields to get names
foreach ($xml->container->children() as $field) {
// put the field name into array
$headers[] = $field->getName();
}
// print headers to CSV
fputcsv($f, $headers, ',', '"');
foreach ($xml->container as $information) {
fputcsv($f, get_object_vars($information), ',', '"');
}
fclose($f);
}
我不知道如何预定义我需要的标题并将正确的信息插入到 CSV 的正确列中。
任何指针都非常感谢。
谢谢
麦克风