XML является структурированным форматом. Таким образом, случайный доступ не имеет особого смысла - вы должны знать, куда идете.
Регулярному выражению также требуется загрузка всей строки в память. Это все же лучше, чем DOM, поскольку DOM обычно занимает в 3-4 раза больше памяти, чем размер файла XML.
Типичным решением для этих случаев является SAX , где у них действительно небольшой отпечаток памяти , но они похожи на курсор только вперед: следовательно, вы не получаете случайный доступ, вы придется пройти через дерево, чтобы добраться туда, куда вам нужно Если вы используете .NET, вы можете использовать XmlTextReader
.
Индексы также полезны, если XML не обновляется часто, поскольку создание таких индексов может быть дорогостоящим.