我正在使用 tinyxml2,系统将我的 xmls 保存为缩进的 4 个空格而不是制表符。读取此内容的程序仅读取选项卡并给我错误。无论如何我可以将 tinyxml2 更改为使用制表符而不是 4 个空格吗?我努力了
XMLDocument xmlDoc(true, PRESERVE_WHITESPACE);
但它并没有改变任何东西
我正在使用 tinyxml2,系统将我的 xmls 保存为缩进的 4 个空格而不是制表符。读取此内容的程序仅读取选项卡并给我错误。无论如何我可以将 tinyxml2 更改为使用制表符而不是 4 个空格吗?我努力了
XMLDocument xmlDoc(true, PRESERVE_WHITESPACE);
但它并没有改变任何东西
我假设您通过调用
XMLDocument::SaveFile(const char* filename, bool compact=false)
(或XMLDocument::SaveFile(FILE* fp, bool compact=false)
)来保存 xml 文档。
这些方法使用XMLPrinter
为元素的缩进写入 4 个空格的类(方法XMLPrinter::PrintSpace
)。您可以通过将参数传递true
给来抑制缩进和换行符的写入。将 xml 直接从一个应用程序传递到另一个应用程序时,首选紧凑型。也许你的程序会接受这种形式的 xml。compact
SaveFile
更改缩进字符将要求您重载XMLPrinter
以提供您自己的实现PrintSpace
并重载XMLDocument
以使用您的 XMLPrinter。
请注意,XML 文档中元素之间的空格(换行符和缩进)没有意义,并且会(必须)被符合标准的解析器忽略。它仅用于人类可读性。
PRESERVE_WHITESPACE
/COLLAPSE_WHITESPACE
仅影响在元素的文本节点中处理空白字符的方式。