How to convert XML into array in PHP? How to convert XML into array in PHP? xml xml

How to convert XML into array in PHP?


easy!

$xml = simplexml_load_string($xmlstring, "SimpleXMLElement", LIBXML_NOCDATA);$json = json_encode($xml);$array = json_decode($json,TRUE);


Another option is the SimpleXML extension (I believe it comes standard with most php installs.)

http://php.net/manual/en/book.simplexml.php

The syntax looks something like this for your example

$xml = new SimpleXMLElement($xmlString);echo $xml->bbb->cccc->dddd['Id'];echo $xml->bbb->cccc->eeee['name'];// or...........foreach ($xml->bbb->cccc as $element) {  foreach($element as $key => $val) {   echo "{$key}: {$val}";  }}


Converting an XML string ($buffer) into a simplified array ignoring attributes and grouping child-elements with the same names:

function XML2Array(SimpleXMLElement $parent){    $array = array();    foreach ($parent as $name => $element) {        ($node = & $array[$name])            && (1 === count($node) ? $node = array($node) : 1)            && $node = & $node[];        $node = $element->count() ? XML2Array($element) : trim($element);    }    return $array;}$xml   = simplexml_load_string($buffer);$array = XML2Array($xml);$array = array($xml->getName() => $array);

Result:

Array(    [aaaa] => Array        (            [bbb] => Array                (                    [cccc] => Array                        (                            [dddd] =>                             [eeee] =>                         )                )        ))

If you also want to have the attributes, they are available via JSON encoding/decoding of SimpleXMLElement. This is often the most easy quick'n'dirty solution:

$xml   = simplexml_load_string($buffer);$array = json_decode(json_encode((array) $xml), true);$array = array($xml->getName() => $array);

Result:

Array(    [aaaa] => Array        (            [@attributes] => Array                (                    [Version] => 1.0                )            [bbb] => Array                (                    [cccc] => Array                        (                            [dddd] => Array                                (                                    [@attributes] => Array                                        (                                            [Id] => id:pass                                        )                                )                            [eeee] => Array                                (                                    [@attributes] => Array                                        (                                            [name] => hearaman                                            [age] => 24                                        )                                )                        )                )        ))

Take note that all these methods only work in the namespace of the XML document.