2016-07-02 8 views
0

Ich brauche Array in XML zu konvertieren, funktioniert alles gut, aber wenn numerischer Wert kommt, ist es schwierig,array2xml Umwandlung in PHP

function array2XML($obj, $array) 
{ 
    foreach ($array as $key => $value) 
    { 
     if(is_numeric($key)) 
      $key = 'item' . $key; 

     if (is_array($value)) 
     { 
      $node = $obj->addChild($key); 
      array2XML($node, $value); 
     } 
     else 
     { 
      $obj->addChild($key, htmlspecialchars($value)); 
     } 
    } 


} 

I vorherigen Schlüssel haben müssen, konvertieren, wenn numerischer Wert

existiert hier ist meine json Daten

{"aaa":"111","bbb":222,"ccc":{"abc":[{"aaa":"123","bbb":253,"ccc":147},{"aaa":"123","bbb":253,"ccc":147}]},"bbc":{"bcc":[{"aaa":"1222","dfg":"123","vfbh":741},{"aaa":"1222","dfg":"123","vfbh":741}]}} 

hier ist mein erstellt XML

 <aaa>111<aaa> 
     <bbb>222</bbb> 
     <ccc> 
      <abc> 
      <item0> 
     <aaa></aaa> 
     <bbb></bbb> 
     <ccc></ccc> 
</item0> 
<item1> 
     <aaa></aaa> 
     <bbb></bbb> 
     <ccc></ccc> 
</item1> 

Aber ich brauche Item0 in diesem Fall prevoius Schlüssel für ex sein

Hier ist, was ich

<aaa>111<aaa> 
      <bbb>222</bbb> 
      <ccc> 

       <abc> 
      <aaa></aaa> 
      <bbb></bbb> 
      <ccc></ccc> 
    </abc> 
    <abc> 
      <aaa></aaa> 
      <bbb></bbb> 
      <ccc></ccc> 
    </abc> 
+0

Bitte überprüfen Sie dies: https://gist.github.com/bzerangue/4982951 –

Antwort

0
<?php 

$test_array = array (
    'bla' => 'blub', 
    'foo' => 'bar', 
    'another_array' => array (
    'stack' => 'overflow', 
), 
); 
$xml = new SimpleXMLElement('<root/>'); 
array_walk_recursive($test_array, array ($xml, 'addChild')); 
print $xml->asXML(); 
results in 

<?xml version="1.0"?> 
<root> 
    <blub>bla</blub> 
    <bar>foo</bar> 
    <overflow>stack</overflow> 
</root> 

Sie sollten erwarten, alle Probleme nicht mit numerischen Werten haben.