数组到xml作为可重用的函数

时间:2014-01-02 21:34:42

标签: php codeigniter oop

我正在尝试创建一个类,我可以将数据作为数组传递给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;
}

1 个答案:

答案 0 :(得分:1)

当你看到这个时,你会很生气:

您错过了返回值:

$theXML->asXML();

应该是

return $theXML->asXML();