Мне нужно искать в (потенциально) большом XML-файле элементы с определенной временной меткой на скоростях типа кадра в анимации.
Я делал нечто похожее в недавнем проекте, но там XML был достаточно маленьким, чтобы поместиться в памяти, поэтому я разобрал его на массив простых объектов и выполнил бинарный поиск. БУМ! супер-быстрый поиск по 800 с лишним временных меток за кадр.
На этот раз XML-файлы могут быть достаточно большими, чтобы сделать их анализ в памяти глупой идеей (это вещи iOS, поэтому объем ОЗУ ограничен). Решение в моей голове - сделать SAX-подобный анализ потока из файла, но с настраиваемым указателем. Таким образом, я мог бы переместить этот указатель вокруг файла в другом двоичном поиске, проанализировать следующий полный узел в файле и использовать его, чтобы сообщить, куда переходит указатель поиска.
Хорошая теория, я думаю. Однако, просматривая интернет, я не смог найти парсер SAX, который позволял бы устанавливать его текущий номер строки в файле. Многие из них предоставляют вам доступ только для чтения в качестве статуса, но ни один не разрешает эту крайне важную настройку позиции.
SO. Кто-нибудь знает библиотеку XML для разбора, которая имеет такую возможность? Опять же, это мир iOS, поэтому все, что основано на C / C ++, подойдет, но бонусные баллы, если у него есть оболочка Obj-C.