Программирование на основе SAX
Основные этапы обработки документа XML на основе SAX можно сформулировать следующим образом.
Создание одного или нескольких пользовательских классов для обработки событий анализатора SAX.
Создание объекта, который обеспечивает прием входного потока символов.
Создание анализатора на основе одного из пакетов инструментальных средств.
Присоединение классов, обрабатывающих события, к анализатору.
Присоединение входного потока к анализатору, начало анализа.
Обработка всех событий в пользовательских классах, которая позволяет записать нужные данные, отследить ошибки и т. д.
Как видно, обработка документов XML в модели SAX подчиняется совсем другой идеологии, чем в модели DOM. Выбор одного из этих двух подходов для конкретного приложения — самый важный выбор из тех, которые вам предстоит сделать. В табл. 1.1 приведены основные критерии, которые следует учитывать в данном вопросе.
Таблица 1.1. Сравнение программирования на основе DOM и SAX
Фактор |
DOM |
SAX | |||
Требования к ресурсам памяти |
Могут оказаться довольно высокими |
Пропорциональны количеству элементов, которые требуется сохранить в памяти | |||
Скорость первой обработки |
Невысокая, так как анализируются все элементы |
Высокая, особенно если нужные элементы легко локализуются | |||
Скорость повторной обработки |
Сравнительно высокая, так как все элементы уже находятся в памяти |
Сравнительно невысокая, так как каждый поиск подразумевает новый проход анализатора по документу | |||
Допустимость модификации |
Очень высокая |
Ограничена необходимостью создания нового документа XML для каждого прохода анализатора |