Вид широкого вопроса. Я полагаю, что двумя основными подходами являются парсеры DOM и SAX.
Парсеры DOM создают дерево узлов в документе для памяти. Очень прост в использовании для программиста, но может потребовать слишком много времени для больших документов.
SAX-парсеры читают документ один раз и создают поток событий, таких как «тег запущен». Программист должен делать полезные вещи с этими событиями. Более эффективный, но более сложный в использовании.