Der Code ist soweit erstmal OK und sollte auch laufen (tut's hier zumindestens)
Aber eine Sache ist falsch (auch wenn es am "Problem" selber nichts ändert)
Delphi-Quellcode:
xml := TXMLDocument.Create(
nil);
try
...
Speicheranforderungen (hier das Erstellen der Klasse) gehören immer VOR den Try-Finally-Block,
nicht hinein. (es sei den man initialisiert die Variable entsprechend)