Moin Moin!
Der erzeugte File läuft wunderbar, allerdings stehen alle Einträge in einer Zeile und das XML-File sollte in einer lesbaren Form ausgegeben werden falls ihn jemand mit einem Editor öffnet.
Nimm einen Editor, der mit XML umgehen kann ... ;-)
Wenn man es ganz genau nimmt, erzeugt zusätzlich eingefügter Whitespace ein anderes Dokument als die Originalversion.
<foo><bar /></foo>
... ist ein foo-Element, dass ein (leeres) bar-Element enthält.
<foo>
<bar />
</foo>
... ist ein foo-Element, dass ein Textelement mit Zeilenumbruch und Spaces, ein leeres bar-Element, und ein weiteres Textelement mit Zeilenumbruch enthält.
Ob der lesende XML-Parser bzw. die dahinter liegende Software sich daran stört, ist natürlich eine andere Frage.
Problematisch wird es, wenn das Pretty Printing zusätzlichen White Space zu relevanten Whitespace hinzufügt.
<p>Foo <b>bar</b> baz</p>
vs.
<p>
Foo
<b>
bar
</b>
baz
</p>
An dieser Stelle stumpf allen Whitespace wegzuwerfen führt einem kaputten Dokument, denn den irrelevanten Pretty-Print-Whitespace kann man nicht mehr vom Whitespace unterschieden, der ins Dokument gehört.
<p>Foo<b>bar</b>baz</p>
Randbemerkung:
JSON hat solche Probleme nicht, dort haben Strings klare, eindeutige Grenzen, außerhalb derer man so viel Whitespace einfügen kann wie man will, ohne Gefahr zu laufen, das Dokument zu beschädigen. Außerdem ist JSON wesentlich kompakter als das sich ewig wiederholende XML.
Alexander
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".