Потоковые XML-парсеры, такие как SAX и StAX, работают быстрее и эффективнее используют память, чем парсеры, строящие древовидную структуру, такие как DOM-парсеры. SAX — это push-парсер, что означает, что он является экземпляром шаблона наблюдателя (также называемого шаблоном слушателя). SAX был первым, но затем появился StAX — анализатор по запросу, что означает, что он по сути работает как итератор.
Вы можете повсюду найти причины, по которым стоит предпочесть StAX SAX, но обычно это сводится к следующему: «его проще использовать».
В учебнике Java по JAXP StAX неопределенно представлен как нечто среднее между DOM и SAX: «это проще». чем SAX и более эффективен, чем DOM». Однако я никогда не находил никаких указаний на то, что StAX будет медленнее или менее эффективно использует память, чем SAX.
Все это заставило меня задуматься: есть ли какие-либо причины выбирать SAX? вместо StAX?
Подробнее здесь: https://stackoverflow.com/questions/752 ... -over-stax