简体   繁体   English

TinyXML遍历元素

[英]TinyXML looping over elements

Using TinyXML to read an xml file. 使用TinyXML读取xml文件。 I want to loop over multiple elements but for some reason it only loops over the first element. 我想遍历多个元素,但由于某种原因,它仅遍历第一个元素。 A short example xml file would be: 一个简短的xml文件示例为:

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

The code to loop is: 要循环的代码是:

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 does show WaveManager01, but then the for loop exists. 因此,这仅循环一次,而wmName确实显示了WaveManager01,但随后存在for循环。

Your for statement is resetting the e element to root on every iteration. 您的for语句将e元素重置为在每次迭代中都植根。 It is supposed to go to the next element in list - e . 它应该转到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");

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM