Итак, у меня есть файл 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 должным образом из-за того, что текст во втором example4
отображается под заголовком example3
в CSV-файле.
Это PHP-скрипт, который мне нужен, чтобы нормально работать с другими XML-файлами.
$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.
Любые указатели очень ценятся.
Благодарность
Майк