Хотя я вижу, что этот вопрос относится к 2012 году, я столкнулся с той же проблемой, пытаясь исправить какой-то очень старый код.Из того, что я могу сказать, когда вы создаете свой документ, вы должны убедиться, что все узлы, которые должны иметь маркеры CDATA, построены следующим образом:
org.w3c.dom.CDATASection commentTextNode =
document.createCDATASection("My Comment with funky !@#$ characters");
Это в отличие от того, как OutputFormat обрабатывал CDATA с помощьюуказание, какие элементы (по имени) должны быть отформатированы как CDATA.