我正在使用tinyxml2,系统会保存我的xmls,其中有4个空格用于缩进而不是制表符。读取它的程序只读取选项卡并给我错误。无论如何我可以改变tinyxml2使用tab而不是4个空格?我试过了
XMLDocument xmlDoc(true, PRESERVE_WHITESPACE);
但它没有改变任何东西
答案 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
仅影响元素文本节点中处理空格字符的方式。