В Java JDK встроены 2 вида XML парсеров, которые доступны как DOM(Document Object Model) и SAX(Simple API for XML). У обеих у них как свои преимущества, так и недостатки. В данном посте приведены примеры работы с файлами XML: будет создан, изменен и прочтен файл XML с помощью DOM и SAX.
DOM XML парсер
DOM парсер — это самый легкий инструмент для работы с XML структурой в Java. При использовании данного подхода все содержимое файла XML загружается в память компьютера, моделируя объект, чтобы можно было легко производить операции со структурой файла, но, данная легкость расплачивается прожорливостью памяти и ресурсов процессора, поэтому, данный способ эффективен, если производиться операция с файлом небольшого размера.
SAX XML парсер
SAX парсер, в отличии от DOM, не загружает структуру документа в память, а использует для манипуляции функцию обратного вызова (org.xml.sax.helpers.DefaultHandler), с помощью которого он держит связь между пользователем и файлом. Помимо этого, SAX парсер имеет возможность в любой момент обратиться к любой части XML документа и манипулировать локальным содержимым, по этой причине SAX быстрее и менее расточительнее, чем DOM парсинг.
Что выбрать?
Требования к программе могут быть разные, поэтому, сразу ответить что лучше нельзя, все исходит из потребностей, но ничто не мешает использовать и SAX и DOM парсер одновременно в одном и том же проекте.