Если вы используете файл XML с требованием, чтобы вы не могли кешировать, то у вас ничего не получится, если вы как-то тщательно не отформатируете свой файл XML, чтобы иметь полезные свойства обхода данных - но тогда вы можете, какхорошо, используйте двоичный файл, который более полезен, если у вас нет очень эзотерических требований.
На самом деле вам нужен один из типичных алгоритмов индексации (для хэша диска, B-дерева и т. д.) с самого начала.
Однако ...
Если у вас есть для чтения и анализа вашего текстового файла XML, то вы можете обойти, используя типичный большой имедленный синтаксический анализатор XML и написать быструю хакерскую версию, поскольку большинство записей данных, которые вам нужно распознать, вероятно, отформатированы одинаково снова и снова.Ничего особенного, просто найдите, где начинаются соответствующие поля данных, перехватите данные до их окончания, перейдите к следующему полю данных.
Честно говоря, 120 КБ текста не очень много - звучит как любой XML-парсервы используете просто медленно(Я постоянно использую этот трюк для автоматически генерируемых данных XML, которые просто представляют такие вещи, как таблицы или простые записи данных - мой собственный анализатор работает быстрее, чем любой общий анализатор XML.)
Это, вероятно, решение, которое вам действительно нужнотак как вы звучите довольно привязанным к формату файла XML.Если вы не будете осторожны, он не будет таким же защищенным от ошибок, как универсальный синтаксический анализатор XML, однако он сожрет этот файл размером 120 КБ, как никто другой.И это работа CS начального уровня - чтение в файле с определенным форматированием и получение значений данных из него.Регэкспы - ваш друг, если у вас есть к ним доступ.