Другой комментарий выглядит так странно для меня, поскольку он копирует ту же логику снова и снова.
Трудно не использовать рекурсию, если вы используете DOM. Однако существует и другой вид анализатора XML.
Ваша задача прямолинейна с помощью анализатора StAX (я считаю, что использование SAX одинаково прост).
Идея проста:
- Есть стек для хранения текущего «пути» (Позволь мне называть его стек путем)
- Когда вы сталкиваетесь с началом узла, нажмите имя этого узла стек путь
- Когда вы сталкиваетесь конец узла, поп из стека пути
- При обнаружении текстового узла, распечатайте значения в стеке пути, и текстовое значение само
Я считаю, что инструкция должна быть достаточно ясной, и я считаю, что средний программист должен уметь вычислять фактический код по описанной выше логике.
Вы, конечно, можете преобразовать рекурсивное решение для обхвата раствора с Stack. – nhahtdh
Это не отвечает на ваш вопрос, но почему вы не можете использовать рекурсию? Какое ограничение требует от вас, если по-другому? –
Я не очень опытный, не могли бы вы помочь мне с примером? – klipa