Для этого вы можете использовать массив:
$xml = new SimpleXMLElement($xmlstr);
$levels = array('images', array('key' => 'image', 'index' => 0), 'image');
foreach ($xml->record as $record) {
$obj = $record;
foreach($levels as $level) {
if(is_array($level))
$obj = $obj->{$level['key']}[$level['index']];
else
$obj = $obj->$level;
}
echo $obj;
}
Это создает иерархию путем переназначения $obj
равного себе ->
того, что будет следующим в массиве.не может интерполировать индексы массива в строках, поэтому, если вам нужно их использовать, просто используйте ассоциированный массив, как показано выше.: -)