ho il seguente file XML:Aggiornamento usando Boost property_tree
<xml version="1.0" encoding="utf-8"?> <Data> <Parameter1>1</Parameter1> </Data>
voglio aggiungere un nuovo nodo: Parametro2 = "2" al nodo dati. Questo codice non funziona, file salvato contiene ancora un solo parametro:
boost::property_tree::ptree tree; boost::property_tree::ptree dataTree; read_xml("test.xml", tree); dataTree = tree.get_child("Data"); dataTree.put("Parameter2", "2"); boost::property_tree::xml_writer_settings w(' ', 4); write_xml("test.xml", tree, std::locale(), w);
Se posso aggiungere queste due righe dopo dataTree.put, ottengo risultato corretto:
tree.clear(); tree.add_child("Data", dataTree);
non mi piace questa soluzione, perché crea problemi con le strutture ad albero più complicate. È possibile aggiornare la struttura delle proprietà senza eliminare/aggiungere nodi figlio?
Grazie! Molto utile, e ora non ho bisogno di chiedere in molto ostile Forum degli utenti Boost :) –