Эта функция называется включениями XML (XInclude) . Некоторые примеры:
Вы можете попробовать двоичное индексированное дерево. Сложность времени: O (q * log (n)), где q - количество запросов.