Можно ли сократить код?
Вам необходимо познать рекурсию.upd
Когда познаете, нужно будет написать функцию, которая:
1. Определяет есть ли следующий уровень вложенности и если есть, то выбирает этот уровень и производит вызов самой себя с этим уровнем.
2. Если следующего уровня нет, то возвращает контент из текущего уровня.
Почитайте про рекурсию.