Я использую Rapid xml для изменения некоторых xml значений файловых узлов, я могу читать все xml без проблем, когда я изменяю значение узла и создаю новый файл, все равно я не вижу никаких изменения стоимости.
const std::string xmlFilePath = "Data.xml";
std::string Primary = "3";
std::string Secondary = "9";
rapidxml::xml_document<> xmlDoc;
rapidxml::xml_document<> xmlOutDoc;
rapidxml::xml_node<> * rootNode;
ifstream file(xmlFilePath.c_str());
std::vector<char> buffer( ( std::istreambuf_iterator<char>(file) ), std::istreambuf_iterator<char>() );
buffer.push_back('\0');
xmlDoc.parse<0>(&buffer[0]);
rootNode = xmlDoc.first_node("Configs");
for (rapidxml::xml_node<> * smsg_node = rootNode->first_node("smsg"); smsg_node; smsg_node = smsg_node->next_sibling())
{
for (rapidxml::xml_node<> * field_node = smsg_node->first_node("field"); field_node; field_node = field_node->next_sibling())
{
for (rapidxml::xml_node<> * eliment_node = field_node->first_node("element"); eliment_node; eliment_node = eliment_node->next_sibling())
{
for (rapidxml::xml_node<> * smsg1_node = eliment_node->first_node("smsg"); smsg1_node; smsg1_node = smsg1_node->next_sibling())
{
for (rapidxml::xml_node<> * field1_node = smsg1_node->first_node("field"); field1_node; field1_node = field1_node->next_sibling())
{
Node = std::string(field1_node->value());
Value = std::string(field1_node->first_attribute("name")->value());
if ((Value.compare("Volume")) == 0){
if ((Node.compare(Primary)) == 0){
cout << "Reading Values set 4 :"<< Value << " Field Value :"<< Node << endl;
field1_node->value(Secondary.c_str());
}
}
}
}
}
}
}
std::ofstream outFile("output.xml");
outFile << xmlDoc;
outFile.close();
return true;
Мой XML файл выглядит как
Я хочу заменить значение тома новым значением и создать новое xml файл или другое, замените значение в текущем xml и сохраните его. Пожалуйста, помогите