Ho un altro problema questo pero e' piu preoccupante

se ho un na variabile simpleXML io posso navigare tranquillamente nell'albero
usando i puntatori.
Pero modificare gli attributi basta semplicemente assegnare un nuovo valore.

tipo
Codice PHP:
XML
<main>
<
nodo>Ciao</nodo>
</
main>

$xml simplexml_load_string('<main><nodo>Ciao</nodo></main>');

$echo $xml->nodo ,"\n"//stampa ciao
$xml->nodo "Hello!";
$echo $xml->nodo,"\n"//stampa hello! 
il mio problema e' che se voglio modificare il valore di un nodo il nodo
cambia da simpleXMLelement a stringa e il problema ancora piu grosso e' che
se voglio modificare il valore di un nodo che hai dei figli mi cancella i figli

tipo

Codice PHP:

$xml 
simplexml_load_string('<main><nodo>Ciao<nodofiglio>figlio</nodofiglio></nodo></main>');

$echo $xml->nodo," ",$xml->nodo->nodofiglio ,"\n"//stampa ciao figlio

$xml->nodo "Hello!";
$echo $xml->nodo," ",$xml->nodo->nodofiglio ,"\n"//da errore perche' nodo e' una stringa 
oltre a questo avrei la necessita' di inserire nodi in testa all'elenco dei figli
non in conda come fa il metodo addChild();

una soluzione che ho pensato sarebbe tipo
Codice PHP:

$xml
->nodo = array ('valore' => "Hello!" $xml->nodo->nodofiglio
non e' corretta per niente ma l'idea sarebbe quella di assegnare al nodo
un oggetto ricostruito ma a questo punto non so bene come scriverlo.

Qualcuno piu praticosa come fare ?

Andrea