2012-03-01 13 views
5

Penso che il problema sia dovuto a una funzione errata o qualcos'altro.Come contare gli elementi in TinyXml?

Questa parte di codice funziona ma il risultato non è soddisfacente.

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

Il risultato di conteggio è 1.


file XML è:

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

Non riesci a trovare ad esempio il lavoro.

+0

Cosa "non sta bene" sul risultato? Quale risultato ottieni e quale risultato ti aspetti? –

+0

Quindi eliminare la domanda o pubblicare la soluzione come risposta. –

+0

Ho risolto: prima riga 'TiXmlElement * e = hDoc.FirstChildElement(). FirstChildElement(). Element();' ottieni il conteggio di Max

risposta

9

se si legge la documentation è possibile trovare il seguente esempio (che sembra più ordinato che il vostro approccio):

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

Ma probabilmente stai solo cercando di contare gli stati quindi vorrei suggerire:

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

probabilmente si desidera anche qualcosa di simile:

TiXmlElement *parent = hDoc.RootElement(); 
Problemi correlati