UPDATE 0.4: Добавил возможность чтения xml из строки.
Т.к. "двухпальцевая" читалка Шепота устарела, да и написана неоптимально... Собственно вот. С рекурсией не стал заморачиваться, т.к. не нужно она тут...совсем не нужна. Код очень простой (половину из него занимают плюшки для отражения самого процесса). Индикатор тоже не стал прикручивать, т.к. он замедляет процесс. Заменил его адаптивным выводом кол-ва прочитанных узлов - чем больше прочитано, тем больше шаг вывода (1,10,100,1000).
Выбираем файл, указываем число строк для чтения за раз (0 - весь файл), нажимаем кнопку. Повторное нажатие кнопки чтения прочитает следующий блок строк. После окончания файла выводится сообщение и чтение не будет происходить пока не выберут новый файл для чтения или не нажмут кнопку очистки дерева.