0

我刚刚开始使用 XML 解析库,但是我在开始时遇到了麻烦。(我猜是学习曲线)更具体地说,我在尝试获取元素并使用它时正在处理异常。现在我有这条线:

tinyxml2::XMLElement *firstEvent = doc.FirstChildElement("EVENTS")->FirstChildElement();

这会引发内存异常。出于某种原因,我无法显示我的 XML 代码,但结构是

文件->事件->事件->更多内容

所以在我看来,解析器无法访问“事件”元素。这可能是什么原因造成的?我究竟做错了什么?!任何帮助都会非常好!

4

1 回答 1

1

假设这是您的 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  */
   }
}
于 2018-02-03T08:21:55.250 回答