2014-12-03 93 views
0

我试图用SimpleXML将多维数组转换为XML文件。 我遵循以下指示:https://stackoverflow.com/a/5965940/3169412这些修改:http://pastebin.com/pYuXQWee但我无法得到正确的结果。使用SimpleXML将多维数组转换为XML

阵列使用:

$array = 
array(
'name' => 'xxx', 
'chapter' => array(
    array(
    'title' => 'yyy', 
    'slide' => 
     array(
     'header' => array('zzz','aaa'), 
     'paragraph' => array('bbb','ccc') 
     ), 
     array(
      'header' => array('ddd'), 
      'paragraph' => array('eee') 
     ) 
    ), 
    array(
     'title' => 'fff', 
     'slide' => array(
      'header' => array('ggg'), 
      'paragraph' => array('hhh') 
     ) 
    ) 
    ) 
); 

首选(需要)XML输出:http://pastebin.com/HWWeDehK

我试着用不同的方法来获得正确的地点正确的节点,但它们似乎都失败。最近我得到的是使用array_keys($ values),但后来我得到了很多双节点或节点在错误的地方。

XMLresult现在:http://pastebin.com/L8LL5VVe

回答

0
​​

file.xml内容是完全按照自己的要求。

+0

有了,我得到: http://pastebin.com/SM4wMYTT(或者我错过了什么?) – 2014-12-03 17:12:03

+0

这是我现在使用的所有代码:http://pastebin.com/ALgkGJDV – 2014-12-03 17:20:31

0

随着FluidXML您可以从PHP数组生成XML,然后在导入SimpleXML的

$data = [ 'doc' => [ 
       'fruit' => 'orange', 
       'cake' => [ 
        '@id' => '123', 
        '@' => 'tiramisu' ], 
       [ 'pasta' => 'matriciana' ], 
       [ 'pasta' => 'boscaiola' ] 
] ]; 

就这样

$doc  = fluidxml($data); 
$simplexml = simplexml_import_dom($doc->dom()); 

// Done. ;) 

https://github.com/servo-php/fluidxml