nein, es lag tatsächlich an meiner eigenen Dummheit :(
Habe in der Funktion "closing_element" vergessen, die Variable $flag als globale Variable zu deklarieren und hab's eben erst gemerkt...
der sax-parser sollte immer einen wohlgeformten datenstrom bekommen und nicht häppchenweise benutzt werden.
daher solltest du die input-datei erst zu einem kompletten datenstrom zusammensetzen oder gleich den richtigen lesebefehl nehmen.
aber das ganze sieht eh ein bischen abenteuerlich aus.