2015-04-20 66 views
0

我不明白为什么,而BBBString有不同的内容为每个(i,j),在xml节点“BBB”始终是相同的值(对应于最后一对(我, j))。其他节点具有确切的内容!Rapidxml写内存错误

for (unsigned short int i = 0; i < input1.size(); i++) 
    { 
     for (unsigned short int j = 0; j < input1[i].size(); j++) 
     { 
      count = 0; 
      max = input1[i][j].size(); 
      iter = input1[i][j].begin(); 
      while (count < max) 
      { 
       rapidxml::xml_node<> * new_node = doc.allocate_node(rapidxml::node_element, "Element"); 
       new_node->append_node(doc.allocate_node(rapidxml::node_element, "AAA", (*(*iter)).getName().c_str())); 

       std::string BBBString = boost::lexical_cast<std::string>(input4[i]); 
       std::cout << "BBBString = " << BBBString << std::endl; 
       new_node->append_node(doc.allocate_node(rapidxml::node_element, "BBB", BBBString.c_str())); 
       new_node->append_node(doc.allocate_node(rapidxml::node_element, "CCC", input2[i].getName().c_str())); 
       new_node->append_node(doc.allocate_node(rapidxml::node_element, "DDD", input3[j].getName().c_str())); 

       other_node->append_node(new_node); 
       iter++; 
       count++; 
      } 
     } 
    } 
+0

[rapidxml - 覆盖以前的xml \ _nodes]的可能的重复(http://stackoverflow.com/questions/11059679/rapidxml-overwriting-previous-xml-nodes) – Roddy

回答