Я предполагаю, что вы сохраняете документ XML не меняется, вызвав XMLDocument::SaveFile(const char* filename, bool compact=false)
(или XMLDocument::SaveFile(FILE* fp, bool compact=false)
).
Эти методы используют класс XMLPrinter
, который записывает 4 пробела для отступов элементов (метод XMLPrinter::PrintSpace
). Вы можете подавить запись отступов и строк новой строки, передав true
для параметра compact
в SaveFile
. Компакт является предпочтительным при передаче xml непосредственно из одного приложения в другое. И, возможно, ваша программа примет xml в этой форме.
Для изменения символа отступа потребуется перегрузить XMLPrinter
, чтобы обеспечить собственную реализацию PrintSpace
и перегрузить XMLDocument
, чтобы использовать XMLPrinter.
Обратите внимание, что пробелы (строки и отступы) между элементами в XML-документе не имеют значения и будут (должны быть) проигнорированы с помощью соответствующих парсеров. Он предназначен только для чтения человеком.
PRESERVE_WHITESPACE
//COLLAPSE_WHITESPACE
влияет только на то, как обрабатываются пробельные символы внутри текстового узла элемента.