Вы можете попытаться увеличить память JVM, но это задержит неизбежное, если проблема серьезная (например, если вы пытаетесь потребовать гигабайты, например).
Если у вас есть одна строкаэто приводит к тому, что вам не хватает памяти, пытаясь это сделать, это должно быть огромно :) Предложение использовать синтаксический анализатор SAX, чтобы обрабатывать его и распечатывать его по частям, является хорошим.Или разбейте его на более мелкие части и отправьте каждый из них в процедуру, которая делает то, что вы хотите, и затем отбросьте результат.