使用TinyXML获取分段错误

时间:2012-07-17 02:08:28

标签: c++ xml segmentation-fault tinyxml

我目前有一个XML文件,我正在使用TinyXML进行解析。我的XML文件的顶部如下:

<Classroom>12
    <ClassName>name</ClassName>
    ...
</Classroom>

我正在尝试访问ClassName中的文本。我目前正在使用它来获取分段错误:

TiXmlDocument doc;
doc.LoadFile(file);
TiXmlHandle  handle(&doc);

TiXmlElement * child = handle.FirstChild().FirstChild().ToElement();
cout<<child->GetText();

我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

  1. 第一次调用FirstChild()会返回表示第一个<Classroom>
  2. 的TiXmlElement
  3. 对FirstChild()的第二次调用返回表示文本“12”
  4. 的TiXmlText
  5. TiXmlText不会覆盖ToElement()函数,因此使用基类的ToElement()函数,该函数返回NULL。
  6. 您可以将代码更改为以下内容:

    TiXmlElement * child = handle.FirstChild("Classroom").FirstChild("ClassName").ToElement();