SimpleXML – echo / print_r возвращает разные значения

Я пытаюсь преобразовать некоторый xml в объект json, используя PHP.

Это должно работать, но по какой-то причудливой причине он терпит неудачу.

Может ли кто-нибудь внести какой-то вклад.

// Loop Through images and return the right one. $i = 1; foreach($page->image as $image) { if ($i == $_GET['id']) { echo json_encode(array( 'background' => $image['bgColor'], 'image' => $image['source'], 'caption' => $image['caption'] )); } $i++; } 

Этот код возвращает следующее.

 {"background":{"0":"000033"}, "image":"0":"0210e849f02646e2f5c08738716ce7e8b3c1169112790078351021245495.jpg"}, "caption": {"0":"Frog"}} print_r($image['bgColor']); shows 'SimpleXMLElement Object ( [0] => 000033 )' echo $image['bgColor']; shows '000033' 

Как анализировать значения, такие как выражение echo, вместо инструкции print_r. Почему они разные?