Por lo tanto esto se compone de cuatro partes:
1) El encabezado en PHP:
<?php
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: text/xml');
?>
2) El array puede ser en cualquier complejidad. Aqui algunos ejemplos:
<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
);// a partir de PHP 5.4
$array = [
"foo" => "bar",
"bar" => "foo",
];?>
3) La invocación se hace por una función en donde se le pasa el array, indicandole cuál es el nodo del XML en el que se va a encapsular el resto de los datos:
echo arrayToXml(
$array
,'datos');
4) La función que hace el trabajo es la siguiente:
function arrayToXml($array,$lastkey='root')
{
$buffer.="<".$lastkey.">";
if (!is_array($array))
{$buffer.=$array;}
else
{
foreach($array as $key=>$value)
{
if (is_array($value))
{
if ( is_numeric(key($value)))
{
foreach($value as $bkey=>$bvalue)
{
$buffer.=arrayToXml($bvalue,$key);
}
}
else
{
$buffer.=arrayToXml($value,$key);
}
}
else
{
$buffer.=arrayToXml($value,$key);
}
}
}
$buffer.="</".$lastkey.">";
return $buffer;
}
5) El resultado que obtenemos es un archivo en XML con la siguiente estructura:<datos>
<foo>bar</foo>
<bar>foo</bar>
</datos>