Reading out XML serves unexpected output in C++ -


i have question reading xml file.

my xml file:

<?xml version="1.0" encoding="utf-8"?>     <level>        <terrain name="terrain" mesh="terrain.x" texture="terrain.bmp" position="011"></terrain>        <skybox name="skybox" mesh="skybox.x" left="left.jpg" right="right.jpg" bottom="bottom.jpg" top="top.jpg" back="back.jpg" front="front.jpg" position="111"></skybox>        <entity name="tiger" mesh="tiger.x" texture="tiger.bmp" position="000"></entity> </level> 

my code:

rapidxml::xml_document<> doc; rapidxml::xml_node<>* root;  std::ifstream file("level\\noob.xml");      std::vector<char> buffer((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());     buffer.push_back('\0');      doc.parse<0>(&buffer[0]);      root = doc.first_node("level");      (rapidxml::xml_node<>* terrain = root->first_node("terrain"); terrain; terrain = terrain->next_sibling())     {         std::cout << terrain->first_attribute("name")->value() << std::endl;     } 

so want print name of terrain. outcome when running this:

terrain skybox tiger 

i check node "terrain" still prints nodes "skybox" , "tiger". how?

the for loop start node "terrain" , proceeds siblings, skybox , tiger.


Comments