tinyxml2解析xml需检查doc.errorid()而非仅loadfile()返回值,路径用正斜杠或双反斜杠,内存解析须传utf-8字符串;读取元素须逐层判空,推荐queryintattribute();构建xml时所有节点须由doc分配并显式建立父子关系,注意内存由文档管理且不自动转义特殊字符。

用 TinyXML2 解析和生成 XML 文档,核心就两件事:TinyXML2::XMLDocument 负责加载/保存,XMLNode/XMLElement 负责遍历与构造。它不支持 DTD、命名空间、XSD 验证,但足够轻、够快、够稳——适合嵌入式、游戏配置、本地数据交换等场景。
如何正确加载并检查 XML 文件是否解析成功
加载失败往往不是语法错,而是路径或编码问题。TinyXML2 默认按 UTF-8 解析,若文件是 GBK/UTF-16,会静默失败(LoadFile() 返回 tinyxml2::XML_SUCCESS 但根节点为空)。
- 始终检查
doc.ErrorID(),而非只看返回值;doc.ErrorStr()会给出具体错误位置(如“expected - windows 下路径用正斜杠或双反斜杠:
doc.LoadFile("config.xml")或doc.LoadFile("datasettings.xml") - 若读取内存字符串,用
Parse()并确保传入的是以