personalmente me es interesante, de hecho te agradezco que compartieras ese detalle. ciertamente no es problema de la clase String de javascript. de hecho, tamoco es problema de XML. el culpable es el parser XML, y por supuesto, segun sea el navegador. en chrome no me sucedio. sin embargo, en firefox me limitaba a 4096 caracteres. lo curioso es que si agrego el contenido en un CDATA no divide el contenido en distintos nodos. una solucion bien rapida para unir los nodos es utilizando la funcion
normalize el cual toma todos los nodos tipo text contiguos y los une en uno solo; en lugar de tener que recorrer por todos ellos como la solucion que expone stackoverflow.
¿como determine que el culpable es el parser (DOMParser)?
si ese mismo documento xml lo creas en un archivo *.xml y lo cargas con XMLHttpRequest, luego buscas el elemento y verifica sus nodos, veras que solo aparece uno de tipo texto.