В этом случае вы точно знаете структуру данных...
Sumo 23.12.2014 21:15
... поэтому можете написать в коде выражение с точным путем: $data.node.subnode.onemorenode. Это тот самый xpath, только на Парсере.
Если структура данных неизвестна (что само по себе странно), то в любом случае надо делать рекурсивный обход данных. Для этого отлично подходят функции. Рекурсию Парсер делать умеет. Никакой process здесь не нужен в принципе.
Все, что вы описываете, прекрасно делается стандартными методами языков программирования, которые были придуманы лет сорок назад и отлично работают до сих пор. В этих языках никакой интроспекции и эвалов не было. :)
Интересный момент. Парсер поддерживает работу с xpath для xml и его удобно использовать при первых попытках разобрать xml. А потом начинаешь понимать, что домом пользоваться не сильно сложнее, но гораздо быстрее.
Так что давайте все-таки разговаривать о примерах из реальной жизни. Мол вот такая ситуация, на входе такие данные, на выходе надо получить то-то и то-то. Делаю так-то. Затык тут и тут.