Я не совсем уверен, что вы имеете в виду. Возможно, я вас не правильно понимаю, но вот что я сделал в своей программе.
Предположим, у вас есть такой файл:
<document>
<person>
<name>bob</name>
<phone>555-5555</phone>
<vehicle>
<color>blue</color>
<type>truck</truck>
</vehicle>
</person>
<person>
<name>jan</name>
<phone>444-5555</phone>
<vehicle>
<color>red</color>
<type>car</truck>
</vehicle>
</person>
</document>
Когда вы нажимаете на тег человека, давайте предположим, что вы собираетесь создать объект человека. Таким образом, вы создаете этот объект person и позволяете ему анализировать xml внутри тегов person. Вы делаете это, делая объект person новым делегатом объекта. Когда объект person обнаруживает закрывающий тег person, он может сбросить делегат. Я также пошел дальше и повторно вызвал тот же метод для исходного делегата. Я получил эту идею от здесь . Вы также можете следить и делать то же самое для тега транспортного средства. Я уверен, что вы можете понять, на чем я сейчас езжу.
Причина, по которой я думаю, что это повышает эффективность, заключается в том, что вместо создания стека элементов и возврата в стек (например, когда вы видите человека, проверяющего, находится ли ваш документ в этом документе). Я полагаю, что вы можете просто предположить, когда видите тег человека, который принадлежит вам, но если вы хотите быть в безопасности, проверка важна. Также этот способ является более модульным. Я думаю, что из-за сокращения строк на производительность улучшится. Его также более элегантно для кода.
Если это не тот ответ, который вы ищете, не могли бы вы рассказать немного подробнее. Спасибо и счастливого кодирования.