Tôi có tập tin XML sau:Đang cập nhật tập tin XML sử dụng Boost property_tree
<xml version="1.0" encoding="utf-8"?> <Data> <Parameter1>1</Parameter1> </Data>
Tôi muốn thêm một nút mới: argument2 = "2" đến nút Data. Mã này không hoạt động, tập tin lưu vẫn chỉ chứa một tham số:
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);
Nếu tôi thêm hai dòng sau sau dataTree.put, tôi nhận được kết quả chính xác:
tree.clear(); tree.add_child("Data", dataTree);
tôi không thích giải pháp này, bởi vì nó tạo ra các vấn đề với cấu trúc cây phức tạp hơn. Có thể cập nhật cây thuộc tính mà không xóa/thêm các nút con không?
Cảm ơn! Rất hữu ích, và bây giờ tôi không cần phải hỏi trong diễn đàn người dùng Boost rất không thân thiện :) –