bhe innanzi tutto appurerei che alla funzione parse_data arrivi il file, poi controllerei se l'evento start element e end element vengano richiamati mettendo nelle relative funzioni un echo che dimostri il passaggio... avanza per gradi e cerca di capire se l'array da pieno viene svuotato o se non viene mai riempito...