6

関数などの使い方を間違えることが問題だと思います。

コードのこの部分は機能していますが、結果は良くありません。

TiXmlElement* e = hDoc.FirstChildElement().Element(); // think problem is there
while (e)
{
    e = e->NextSiblingElement();  //or may be there
    count++;
}

カウントの結果は1です。


Xmlファイルは次のとおりです。

<doc>
   <state> ... </state>
   <state> ... </state>
   ...
</doc>

作業例が見つかりません。

4

1 に答える 1

9

ドキュメントを読むと、次の例を見つけることができます(これはあなたのアプローチよりもきれいに見えます):

for( child = parent->FirstChild(); child; child = child->NextSibling() )
    count++;

しかし、おそらく州を数えようとしているだけなので、次のことをお勧めします。

for( child = parent->FirstChild("state"); child; child = child->NextSibling("state") )

おそらく、次のようなものも必要です。

TiXmlElement *parent = hDoc.RootElement();
于 2012-03-07T08:23:46.443 に答える