首页 > 解决方案 > 使用 C++ 解析 xml 文件时出现 Tinyxml2 错误

问题描述

我正在使用 tinyxml2 来解析 xml 文件。在使用一些打印进行调试时:

XMLDocument doc;  
doc.LoadFile("../../Demos/config.xml");
std::cout << "file loaded" << std::endl;

XMLNode * pRoot = doc.FirstChild();
std::cout << "first element loadaed" << std::endl;
if (pRoot == nullptr) std::cout << "oops" << std::endl;

我注意到我的程序会打印最后一个std::cout,然后会给出分段错误错误。我的问题是我不明白为什么pRootis null。我给我的程序的 xml 文件如下:

<scene>
    <group>
        <translate X="5" Y="0" Z="2" />
        <rotate angle="45" axisX="0" axisY="1" axisZ="0" />
        <models>
            <model file=”sphere.3d” />
        </models>
    </group>
</scene>

任何帮助,将不胜感激。

标签: c++xmltinyxml2

解决方案


检查 的返回值LoadFile。是否LoadFile返回XML_SUCCESS?否则文件甚至可能不会被加载。您是否在正确的文件夹中搜索?


推荐阅读