Also, iFrames kannst du aufgrund der Content Security Policy eigentlich kaum bist gar nicht bearbeiten. Ein iFrame ist ein eingebetteter Frame, sprich ein Browser-Fenster im Fenster. Das war natürlich nicht immer so, aber es gibt zB. Zahlungssysteme die als iFrame das Kreditkarten-Formular haben und dass man da nicht einfach mitlesen kann, gibt es diese Restriktionen. So zumindest in der Theorie.
Zur Anzeige solltest du aber sowieso kein iFrame verwenden. Entweder wie du es gemacht hast ein Div, oder ein semantischeres HTML5-Element (nicht notwendig).
Tipp am Rande: Verwende doch statt insertBefore, appendChild. Dann hast du es unter dem iFrame, wie du es wolltest.
Zu deinem Problem: Weiß nicht ganz was du formatieren willst. Du könntest Zeilenumbrüche mit BR ersetzen.
Ansonsten könntest du noch mittels den CSS-Eigenschaften word-break und word-wrap versuchen auf dein gewünschtes Resultat zu kommen.Code:str = str.replace(/(?:\r\n|\r|\n)/g, '<br />');
Wenn du tatsächlich XML formatieren willst, dann nimm ein Plugin wie http://www.eslinstructor.net/vkbeautify/.



Zitieren