1
私は、PHP配列をXMLに変換する必要のある単純なスクリプトを作成しようとしていますが、動作させることはできません。配列に次元が1つしかない場合や、より多くの寸法は、すべてのノードが「ルート」ノードに追加されsimpleXMLスクリプト
#class
class XML {
private $root = '<response />';
function __construct($root=null){
$this->root = new SimpleXMLElement($root ? $root:$this->root);
}
function encode($arr, $node=null){
$node = $node ? $node:$this->root;
foreach($arr as $key => $value){
if(is_array($value)){
$this->encode($value, $node->addChild($key));
}
else{
$node->addChild($key, $value);
}
}
}
function output(){
return $this->root->asXML();
}
}
#code
$arr = array(
'test' => 'noget',
'hmmm' => 12,
'arr' => array(
99 => 'haha',
'arr2' => array(
),
'dd' => '333'
)
);
print_r($arr);
require_once '../class/class.XML.php';
$XML = new XML();
$XML->encode($arr);
echo $XML->output();
#output
Array
(
[test] => noget
[hmmm] => 12
[arr] => Array
(
[99] => haha
[arr2] => Array
(
)
[dd] => 333
)
)
<?xml version="1.0"?>
<response><test>noget</test><hmmm>12</hmmm><arr/><99>haha</99><arr2/><dd>333</dd></response>