Почему этот цикл работает только один раз? noteDatabaseItem просто берет узел и заполняет данные. xml имеет 3 примечания в нем.Почему этот цикл работает только один раз?
XML:
<?xml version="1.0" encoding="utf-8"?>
<noteCollection>
<note name="Test Note 1">This is test note 1 content!</note>
<note name="Test Note 2">This is test note 2 content!</note>
<note name="Test Note 3">This is test note 3 content!</note>
</noteCollection>
C++:
std::vector<notekeeper::noteDatabaseItem> noteList;
TiXmlElement* noteCollection = xmlDoc->FirstChildElement("noteCollection");
TiXmlElement* node = noteCollection->FirstChildElement("note");
int itemCount = 0;
while (node != NULL) {
itemCount++;
noteList.resize(itemCount);
noteList.push_back(noteDatabaseItem(node));
node = noteCollection->NextSiblingElement("note");
}
Почему вы «изменяете размер» перед тем, как «push_back»? Он изменяет размеры. Возможно, последняя строка должна быть «node = note-> NextSiblingElement (« note »);'? – GManNickG
Загруженный XML выше, и есть 3 примечания, поэтому нет 1, и изменение размера является ошибкой. – Will03uk
node = node-> NextSiblingElement ("note"); работал. – Will03uk