2016-12-12 6 views
1

Я использую tinyxml2, и система сохраняет мои xmls с 4 пробелами для отступов вместо вкладки. Программа, которая читает это, только читает вкладки и дает мне ошибки. В любом случае я могу изменить tinyxml2, чтобы использовать вкладку вместо 4 пробелов? Я попыталсяtinyxml2 - отступ с вкладкой вместо пробелов

XMLDocument xmlDoc(true, PRESERVE_WHITESPACE); 

но ничего

ответ

0

Я предполагаю, что вы сохраняете документ 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 влияет только на то, как обрабатываются пробельные символы внутри текстового узла элемента.