我刚刚开始使用XML解析库,但是我在开始时遇到了麻烦。(我猜是学习曲线)更具体地说,当我试图获取并使用元素时,我正在处理一个异常。现在我有这样一句话:
tinyxml2::XMLElement *firstEvent = doc.FirstChildElement("EVENTS")->FirstChildElement();这会抛出内存异常。由于某种原因,我不能显示我的XML代码,但是它的结构是
文件->事件->事件->更多内容
所以在我看来,解析器不能访问"event“元素。这可能是什么原因造成的?我做错了什么?!任何帮助都是非常好的!
发布于 2018-02-03 16:21:55
假设这是您的xml内容:
<events>
<event> "Move" <\event>
<event> "Walk" <\event>
<event> "Run" <\event>
<\events>在迭代前测试XmlElement是否为NULL,以避免抛出异常: C++代码片段可以如下所示:
XmlElement* elem = doc.FirstChildElement("events");
if(elem != NULL)
{
for (XmlElement* e = elem->FirstChildElement("event"); e != NULL; e = e->NextSiblingElement("event"))
{
const char *c = e->GetText(); // if its an attrib use e->Attribute("event-type");
/* more */
}
}https://stackoverflow.com/questions/48572920
复制相似问题