Ich habe die folgende XML-Datei:Updating XML-Datei mit Boost-property_tree
<xml version="1.0" encoding="utf-8"?> <Data> <Parameter1>1</Parameter1> </Data>
Ich möchte einen neuen Knoten hinzuzufügen: Parameter2 = "2" an den Datenknoten. Dieser Code funktioniert nicht, gespeicherte Datei enthält immer noch nur einen Parameter:
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);
Wenn ich diese beiden Zeilen nach dataTree.put hinzufügen, ich korrektes Ergebnis erhalten:
tree.clear(); tree.add_child("Data", dataTree);
Ich mag es nicht Diese Lösung, weil es Probleme mit komplizierteren Baumstrukturen schafft. Ist es möglich, den Eigenschaftsbaum zu aktualisieren, ohne untergeordnete Knoten zu löschen/hinzuzufügen?
Dank! Sehr hilfreich, und jetzt muss ich nicht in sehr unfreundlichen Boost-User-Forum fragen :) –