Hola:
Personalmente prefiero las respuestas Ajax con formato XML, sobre todo porque consigo un
sistema accesible.
Pero aunque es notoriamente fácil de generar, hay veces que necesitas obtener datos con contenido que malforma la salida, así que debes pensar en un sistema de blindaje, para contenido dentro de etiquetas se usan los "CDATA"s, y en los atributos (pueden simplificar bastante el código) considerar las entidades (entities), o sea puedes usar htmlentities o según el caso urlencode en php...
Un ejemplo de blindaje lo muestro en este artículo/ejemplo:
Destripando objetos Ajax, en la pestaña: "Errores XML".
Saludos