<?php
function array_to_xml(array $data) {
$document = new DOMDocument();
array_to_xml_aux($data, $document);
$document->formatOutput = true;
return $document;
}
function array_to_xml_aux(array $data, DOMNode $parent, $name = null)
{
foreach ($data as $key => $value) {
if ($key[0] == '@') {
$parent->setAttribute(
substr($key, 1),
$value
);
return;
}
if (is_numeric($key)) {
$key = $name;
}
if (is_array($value)) {
$subnode = new DOMElement($key);
$parent->appendChild($subnode);
array_to_xml_aux($value, $subnode, $key);
} else {
$xml_data->appendChild(new DOMElement($key, $value));
}
}
}
$document = array_to_xml(
array(
'Products' => array(
'Product' => array('@name' => 'TR-501'),
'Descricao' => array('@text' => '55.180.198 / 46789771'),
'Detalhes' => array(
'Variacao' => array(
array(
'@modelo' => 'Palio',
'@ano' => '2006',
'@motor' => '1.0 FIRE 8V (FLEX)',
),
array(
'@modelo' => 'Palio2',
'@ano' => '2007',
'@motor' => '1.0 FIRE 9V (FLEX)',
),
)
),
)
)
);
echo $document->saveXML();
preferences:
25.6 ms | 405 KiB | 5 Q