А ради интереса QIODevice::Text выкинуть нафиг ?
Конечно же пробовал, ситуация такая, QIODevice::Text как грит асистент, при чтении заменяет переводы строки на \n а при записи заменяет \n на перевод строки под конкретную систему. Так вот если в XML не у одного тега содержащего CDATA нет то и с ним и без него никаких проблем нет, нО если раздел CDATA есть то поведение следующее:
Когда указан QIODevice::Text появляются в CDATA пустые строки остальной XML нормальный
Когда не указан то с CDATA все нормально а вот у остального XML переводы строки вообще отсутствуют. Вот такая вот дребедень :-))) а вообще при дебаге обратил внимание что при чтении XML в строку в разделе CDATA всеравно появляются \n\n мне кажется что при чтении переводы строки в ней считаются частью раздела, а потом еще и добавляется штатный перевод строки вот от куда и появляются два \n\n. Ну пока решение котрое я привел работает, незнаю что это баг, или специфика работы :-)