Это же логично. SAX анализирует промежуток между началом и концом xml. То, что у вас в файле несколько файлов xml сжаты, значит вам надо ручками делить на строки.
Или же дописать своего наследника SAX парсера.(но руками помоему проще).
Простейший код поиска
QString receiveContent; // принятые данные
if (receiveContent.count("Тут xml заголовок") > 1)
// тут делим строку.
// далее суём парсеру по очереди, пока строки не кончатся.