2012-08-27 19 views
7

Bir xml dosyasını okumak için TinyXML'i kullanma. Birden çok öğe üzerinde döngü yapmak istiyorum ama bir sebepten ötürü sadece ilk elemanın üzerine dönüyor. Kısa bir örnek xml dosyası olacaktır: döngüTinyXML elemanların üzerinde döngü

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

kodudur:

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

} 

Yani bu sadece bir kez döngüler ve wmName WaveManager01 göstermektedir, ancak daha sonra döngü için vardır.

+1

Bah, nvm:

İşte doğru kodudur. Görüyorsunuz e-> NextSiblingElement() root -> NextSiblingElement(). Cevap verdikten sonra cevapları bulduğum zaman nefret ediyorum. – user441521

+11

Bunu bir cevap olarak gönderin, bir yorum değil. –

+0

@ user441521, lütfen cevap olarak yazınız ve kabul edildiniz olarak işaretleyiniz, böylece bu soru cevapsız bölümde kalmayacak. Teşekkürler :) –

cevap

2

for bildiriminiz, her yinelemede kök için e öğesinin sıfırlanmasını sıfırlıyor. Listedeki bir sonraki öğeye gitmek gerekiyor - e.

TiXmlElement* root = _waveDoc.FirstChildElement("root"); 

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

} 
İlgili konular