Быстрые XML изменения значения узла не сохраняются - PullRequest
0 голосов
/ 24 января 2020

Я использую 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 файл выглядит как

enter image description here

Я хочу заменить значение тома новым значением и создать новое xml файл или другое, замените значение в текущем xml и сохраните его. Пожалуйста, помогите

...