TinyXML2 - 麻烦入门

时间:2018-02-01 22:39:02

标签: c++ xml tinyxml tinyxml2

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

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

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

file-> EVENTS-> event->更多内容

所以这对我来说似乎是解析器无法访问“event”元素。可能是什么导致了这个?我究竟做错了什么?!任何帮助都会非常好!

1 个答案:

答案 0 :(得分:1)

Assuming this is your xml content:

<events>
  <event> "Move" <\event>
  <event> "Walk" <\event>
  <event> "Run" <\event>
<\events>

Test if the XmlElement is not NULL before iteration to avoid throwing exception: C++ code snippet can look like this:

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  */
   }
}