我目前有一个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();

我究竟做错了什么?

谢谢!

最佳答案

  • 对FirstChild()的第一次调用返回一个TiXmlElement,表示第一个<Classroom>
  • 对FirstChild()的第二次调用返回一个TiXmlText,表示文本“12”
  • TiXmlText不会覆盖ToElement()函数,因此使用基类的ToElement()函数,该函数返回NULL。

  • 您可以将代码更改为以下内容:
    TiXmlElement * child = handle.FirstChild("Classroom").FirstChild("ClassName").ToElement();
    

    10-04 22:01