O conceito que vc precisa entender é que existe uma arvore ali. Se existe uma arvore, existem nodos. Vc precisa criar uma classe que represente o nodo de forma que cada nodo possa ter filhos e um pai.
Ai vc lê o arquivo linha a linha e vai criando os nodos. Vc pode usar a edentação da linha para entender qual nodo é filho de qual.
Depois que vc tiver a arvore com todos os nodos vc precisa escrevê-la para xml. Para isso vc precisa de um objeto que vai passando de nodo em nodo e escrevendo o nodo para o xml. O laço for não vai resolver.
Este padrão chama-se visitor é muito util com estrutruas de arvores como estrutruas de pastas e arquivos por exemplo.
Sim, é complexo. Espera-se que vc tenha noção do conceito de arvore e nodo. Se vc conseguir implementar a leitura e ter a arvore , o resto é mais simples.
Para o uso do padrão visitor é bom conversar com alguém mais experiente.
Não tenha vergonha de pedir ajuda. Você não tem nada a perder e muito a ganhar. Mas faça seu trabalho de casa primeiro. Ficar batendo conta as paredes não adianta.
Fora isso, deu uma revisada em estruturas de dados porque vc está precisando e lhe será util para o resto da vida.