HEX
Server: Apache/2.4.46 (Ubuntu)
System: Linux localhost 5.11.0-49-generic #55-Ubuntu SMP Wed Jan 12 17:36:34 UTC 2022 x86_64
User: root (0)
PHP: 7.4.16
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/xml-csv/index.php
<?php 
function createCsv($xml, $f)
{

echo json_encode($xml);
exit;
    foreach ($xml->children() as $item) {

        echo $hasChild = (count($item->children()) > 0) ? true : false;

        if (!$hasChild) {
            $put_arr = array($item->getName(), $item);
            fputcsv($f, $put_arr, ',', '"');
        } else {
            createCsv($item, $f);
        }
    }
}

$filexml = 'data.xml';

if (file_exists($filexml)) {
    $xml = simplexml_load_file($filexml);
    $f = fopen('test.csv', 'w');
    createCsv($xml, $f);
    fclose($f);
}