TinyXML iterates over elements

Using TinyXML to read an XML file. I want to iterate over several elements, but for some reason, it only enumerates the first element. A brief example of an xml file:

<root> <wave_manager name="WaveManager01"> </wave_manager> <wave_manager name="WaveManager02"> </wave_manager> </root> 

Code for the loop:

 TiXmlElement* root = _waveDoc.FirstChildElement("root"); for(TiXmlElement* e = root->FirstChildElement("wave_manager"); e != NULL; e = root->NextSiblingElement("wave_manager")) { string wmName = e->Attribute("name"); } 

So, this only loops once, and wmName shows WaveManager01, but then there is a for loop.

+7
source share
1 answer

Your for statement flushes the e element to root at each iteration. It should go to the next item in the list - e .

Here is the correct code:

 TiXmlElement* root = _waveDoc.FirstChildElement("root"); for(TiXmlElement* e = root->FirstChildElement("wave_manager"); e != NULL; e = e->NextSiblingElement("wave_manager")) { string wmName = e->Attribute("name"); } 
+3
source

All Articles