У парсера есть удобный механизм обработки исключений
Luzhnikovskiy 03.04.2004 16:56
Блок ^try{код}{обработка} можно прикрутить и для подобного.
Но самое простое решение в конкретном случае - внимательно изучить документацию по XPath ;-) В XPath есть все инструменты для выбора нужной ноды в один запрос.
Например, если имя нужной ноды лежит в $nodeName
following-sibling::*[name() = '$nodeName'][1]
даст "первую такую же ноду на данном уровне относительно текущей".
Надеюсь, не надо объяснять, как получить имя текущей ноды? ;-)
Использование подобных запросов очевидно снимает необходимость перебора хэша.
Нужны другие ноды? Давайте тогда будем обсуждать конкретные задачи, а не "философское наличие/отсутствие быстрого выхода из цикла", ибо break не появится в парсере с очень большой вероятностью ;-)