Lo que sucede, es que al imprimir un objeto se intenta llamar al método mágico __toString(), lo cual hace que se muestre dicho valor impreso.
Cuando lo almacenas en tu array estás guardando el objeto completo, si quieres iterar dicho array e imprimir sus valores, descubrirás que se imprimen correctamente.
Ahora, entiendo que lo que deseas almacenar ya no es el objeto en si sino su valor, para lo cual debes forzar la extracción de su contenido literal usando (string):
Código PHP:
$nombre[]=(string) $nodo;
Lo cual invocaría de nueva vez a __toString(), espero eso resuelva tu problema.