2

我目前有一个使用 TinyXML 解析的 XML 文件。我的 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();

我究竟做错了什么?

谢谢!

4

1 回答 1

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

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

TiXmlElement * child = handle.FirstChild("Classroom").FirstChild("ClassName").ToElement();
于 2012-07-17T03:13:46.947 回答