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() の 2 回目の呼び出しは、テキスト「12」を表す TiXmlText を返します。
  3. TiXmlText は ToElement() 関数をオーバーライドしないため、NULL を返す基本クラスの ToElement() 関数を使用します。

コードを次のように変更できます。

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