¿Cómo atravesar SimpleXML para editar nodos de texto?

Necesito implementar el siguiente algoritmo con SimpleXML:

poner una cadena de fragmento XML en un objeto SimpleXML;Recorre todos los nodos, seleccionando nodos de texto;editar el nodo de texto (ejemplo convertir a mayúsculas);devuelve el xml como una cadena.

PROBLEMAS:

Cómo cargar un XML con entidades nombradas (ej. ).

Para atravesar XML para obtener solo nodos de texto ... Con$sx->xpath('//text()'); No puedo editar los nodos, ¿cómo seleccionar los nodos de texto para editar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta