我正在尝试创建一个类,我可以将数据作为数组传递给array_to_xml()
,最终让它吐出一个xml格式的数组版本。我似乎把自己描绘成了一个没有输出任何东西的角落,而且我几乎肯定是某种意义上的东西,我忽略了它。所以我需要有人来帮助我,给我一双次要的眼睛。
基本上我正试图将Hanmant
提供的答案https://stackoverflow.com/a/5965940变成可重复使用的函数。
function array_to_xml($arrayData, $xmlOutputName)
{
$xmlOutput = new SimpleXMLElement("<?xml version=\"1.0\"?><".$xmlOutputName."></".$xmlOutputName.">");
$theXML = $this->arrays_to_xmls($arrayData, $xmlOutput);
$theXML->asXML();
}
function arrays_to_xmls($arrayData, &$xmlOutput)
{
foreach($arrayData as $key => $value)
{
if(is_array($value))
{
if(!is_numeric($key))
{
$subnode = $xmlOutput->addChild("$key");
$this->arrays_to_xmls($value, $subnode);
}
else
{
$subnode = $xmlOutput->addChild("item$key");
$this->arrays_to_xmls($value, $subnode);
}
}
else
{
$xmlOutput->addChild("$key","$value");
}
}
return $xmlOutput;
}
答案 0 :(得分:1)
当你看到这个时,你会很生气:
您错过了返回值:
$theXML->asXML();
应该是
return $theXML->asXML();