- is_numeric: documentation ( source)
- json_decode: documentation ( source)
- print_r: documentation ( source)
- htmlspecialchars: documentation ( source)
<?php
function array_to_xml($data, &$xml_data) {
foreach ($data as $key => $value) {
if (is_array($value)) {
if (is_numeric($key)){
$key = 'item'.$key; //dealing with <0/>..<n/> issues
}
$subnode = $xml_data->addChild($key);
array_to_xml($value, $subnode);
} else {
$xml_data->addChild("$key",htmlspecialchars("$value"));
}
}
}
$requestResult = <<<EOT
{
"name": "Benjamin Clementine",
"mbid_id": "578e5d1c-be21-4158-b147-30aad67f207d",
"albums": {
"68e65535-f133-408d-93dd-205e9555eaa5": {
"albumcover": [
{
"id": "172070",
"url": "http://assets.fanart.tv/fanart/music/578e5d1c-be21-4158-b147-30aad67f207d/albumcover/at-least-for-now-55b74dfa59411.jpg",
"likes": "0"
}
]
}
}
}
EOT;
$decodedResult = json_decode($requestResult, true);
$xmlELement = new SimpleXMLElement('<root/>');
array_to_xml($decodedResult, $xmlElement);
print_r($xmlElement->xpath('//albumcover/url'));