tinyxml2 - 使用制表符而不是空格缩进

时间:2016-12-12 03:42:57

标签: tinyxml2

我正在使用tinyxml2,系统会保存我的xmls,其中有4个空格用于缩进而不是制表符。读取它的程序只读取选项卡并给我错误。无论如何我可以改变tinyxml2使用tab而不是4个空格?我试过了

    XMLDocument xmlDoc(true, PRESERVE_WHITESPACE);

但它没有改变任何东西

1 个答案:

答案 0 :(得分: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直接从一个应用程序传递到另一个应用程序时,首选Compact。也许你的程序会接受这种形式的xml。

更改缩进字符将要求您重载XMLPrinter以提供自己的PrintSpace实现和重载XMLDocument以使用XMLPrinter。

请注意,XML文档中元素之间的空格(换行符和缩进)没有意义,并且(必须)通过符合解析器来忽略。它仅供人类阅读。

PRESERVE_WHITESPACE / COLLAPSE_WHITESPACE仅影响元素文本节点中处理空格字符的方式。