【发布时间】:2010-04-22 13:34:39
【问题描述】:
我需要从给定的 array() 创建一个有效的 xml;
我的方法是这样的,
protected function array2Xml($array)
{
$xml = "";
if(is_array($array))
{
foreach($array as $key=>$value)
{
$xml .= "<$key>";
if(is_array($value))
{
$xml .= $this->array2Xml($value);
}
$xml .= "</$key>";
}
return $xml;
}
else
{
throw new Exception("in valid");
}
}
protected function createValidXMLfromArray($array,$node)
{
$xml = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$xmlArray = $this->array2Xml($array);
$xml .= "<$node>$xmlArray</$node>";
return $xml;
}
如果我执行上面的操作,我只会得到空值的键;
喜欢
<node>
<name></name>
</node>
我需要的是如果我通过了这个array("name"=>"test","value"=>array("test1"=>33,"test2"=>40));
它返回这个
<node>
<name>test</name>
<value>
<test1>33</test1>
<test2>40</test2>
</value>
</node>
错误在哪里,我在上面的递归中做错了什么?
【问题讨论】:
-
请注意:我建议使用 DOM 类创建 XML php.net/manual/en/book.dom.php