我最近开始使用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/