2012-03-01 11 views
5

Creo que es un problema con el uso incorrecto de la función u otra cosa.¿Cómo contar elementos en TinyXml?

Esta parte del código funciona, pero el resultado no es el correcto.

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

El resultado del recuento es 1.


archivo XML es:

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

No se puede encontrar ejemplo de trabajo.

+0

¿Qué "no está bien" sobre el resultado? ¿Qué resultado obtienes y qué resultado esperas? –

+0

Luego, elimine la pregunta o publique la solución como respuesta. –

+0

He resuelto: primera línea 'TiXmlElement * e = hDoc.FirstChildElement(). FirstChildElement(). Element();' obtiene el recuento de Max

Respuesta

9

si usted lee el documentation se puede encontrar el siguiente ejemplo (que parece más limpio que su acercamiento):

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

Pero es probable que sólo se trata de contar los estados, así que sugiero:

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

probablemente también querrá algo como esto:

TiXmlElement *parent = hDoc.RootElement(); 
Cuestiones relacionadas