【发布时间】:2012-06-20 03:55:42
【问题描述】:
我最近开始使用 tinyXML。问题是当我运行我的程序来读取 xml 时,它会返回访问冲突。常见的一行是:
doc.FirstChildElement("Map")->FirstChildElement("Width")->GetText()
使用 Visual Studio 调试器,我确定它为“地图”返回 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标签,但是当它不起作用时添加了它,添加它仍然没有帮助。任何帮助将不胜感激
【问题讨论】:
-
doc.LoadFile(...)返回什么? -
永远不要使用函数返回的指针而不检查它们是否返回非空指针。
-
errorCode 为 3,现在查看文档
-
看起来是找不到文件...即使我在调试目录中的 data/maps/map1.xml 中有它应该从它运行...