我最近开始使用tinyXML。问题是,当我运行程序以读取xml时,它返回访问冲突。常见的一行是:

doc.FirstChildElement("Map")->FirstChildElement("Width")->GetText()


使用Visual Studio调试器,我确定它为“ Map”返回null,然后使用null引用来调用函数。

这是第一行代码和xml

XMLDocument doc;
    doc.LoadFile(path.c_str());

    int width = atoi(doc.FirstChildElement("Map")->FirstChildElement("Width")->GetText());


XML:

<?xml version="1.0"?>
 <Master>
 <Map>
    <Width>5</Width>
    <Height>5</Height>
    <Layers>1</Layers>
    <Tiles>
        <Tile>
            <Id>1</Id>
            <Path>data/tiles/dirt-base.png</Path>
        </Tile>
    </Tiles>
    <Data>
        <DataLayer>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</DataLayer>
    </Data>
 </Map>
 </Master>


需要特别注意的是,我最初没有root标记,但是在它不起作用时添加了它,但是添加仍然没有帮助。任何帮助,将不胜感激

最佳答案

在我看来,您正在调用的那些TinyXML函数之一正在返回无效的指针。尝试分别检查每个呼叫的结果,您将可以找出问题所在。

关于c++ - TinyXML引发访问冲突,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11112603/

10-13 02:53