使用TinyXML获取分段错误

Getting Segmentation Fault with TinyXML

本文关键字:错误 分段 获取 TinyXML 使用      更新时间:2023-10-16

我目前有一个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. 对FirstChild()的第一个调用返回表示第一个<Classroom>的TiXmlElement
  2. 对FirstChild()的第二个调用返回一个表示文本"12"的TiXmlText
  3. TiXmlText不重写ToElement()函数,因此使用基类的ToElement(

您可以将代码更改为以下内容:

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