PHP xml генератор - PullRequest
       0

PHP xml генератор

0 голосов
/ 27 января 2020

Привет, я сделал генератор XML с PHP: это полный образец PHP, сделанный с формой в html. отправить отправить всю дату в этот скрипт и сгенерировать модель в XML я могу использовать в другой программе

<?php

$xml = new SimpleXMLElement('<?xml version=\'1.0\' encoding=\'utf-8\'?>
<ProjetGC xmlns:xsi=\'http://www.w3.org/2001/XMLSchema-instance\' xmlns:xsd=\'http://www.w3.org/2001/XMLSchema\'></ProjetGC>'
);
    $data = array(
        'Langue' => 'FRA',
        'Chantier' => 
        array(
            'Designation' => $_POST['Designation'],
            'NumeroCommande' => $_POST['NumeroCommande'],
            'Rue' => $_POST['Rue'],
            'Ville' => $_POST['Ville'],
        ),

data2XML($data, $xml);
function data2XML(array $data, SimpleXMLElement $xml, $child = 'items')
{

    foreach ($data as $key => $val) {
        if (is_array($val)) {

            if (is_numeric($key)) {
                $node = $xml->addChild($child);
                $nodes = $node->getName($child);
            } else {

                $node = $xml->addChild($key);
                $nodes = $node->getName($key);
            }

            $node->addChild($nodes, data2Xml($val, $node));
        } else {
            $xml->addChild($key, $val);
        }
    }
}


$asXML = $xml->asXML();
$file = fopen('data.xml', 'w+');
fwrite($file, $asXML);
fclose($file);
//print_r(error_get_last());

if (file_exists('./data.xml')) {
    $myXML = file_get_contents('./data.xml');
    $xml = new SimpleXMLElement($myXML);
    $dom = dom_import_simplexml($xml)->ownerDocument;
    $dom->formatOutput = true;

    header('content-type: text/xml');
    header('Content-Disposition: attachment; filename="data.xml"');

    echo $dom->saveXML();
}
//}
?>

это результат XML:

<?xml version="1.0" encoding="utf-8"?>
    <ProjetGC xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Langue>FRA</Langue>
      <Chantier>
        <Designation>QSDQSDQSD</Designation>
        <NumeroCommande/>
        <Rue/>
        <Ville/>
        <Chantier/>
      </Chantier>

некоторые теги дублируются (например, "chantier"), как я могу сделать, чтобы решить это? я попытался переписать сценарий, но все тот же

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...