Смысл xml в том что если тег даже один и тот же но в разных иерархиях, то он разным считается.
То же самое что реквизит регион в Контрагента и реквизит регион у Банка. И мы бы считали сколько реквизитов "Регион" упоминается в каком то списке Банки+контрагенты. Но это ведь разные реквизиты. Они даже типа могут быть разного.
Чтение XML есть потоковая весчь.
В этом то ее и смысл, ибо XML избыточен по своей сути и никаких 2 гектар памяти не хватит засосать обычную выгрузку обмена за пару суток между базами (к примеру).
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший