Зачем циклами. Нашел открытый тег. Создал под него объект. И складываешь чаилды пока не найдешь закрытие этого тега. Рекурсивный метод. Главное не пытайся сразу найти, где этот тег закрывается, т.к. может быть такой же вложенный
Походу написать легче чем объяснить :(