Tôi đang sử dụng boost :: property_tree để đọc và ghi các tệp cấu hình XML trong ứng dụng của mình. Nhưng khi tôi viết tệp, đầu ra trông có vẻ xấu xí với nhiều dòng trống trong tệp. Vấn đề là nó phải được chỉnh sửa bởi con người vì vậy tôi muốn có được kết quả tốt hơn.boost :: property_tree XML in đẹp
Như một ví dụ tôi đã viết một chương trình thử nghiệm nhỏ:
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
int main(void)
{
using boost::property_tree::ptree;
ptree pt;
// reading file.xml
read_xml("file.xml", pt);
// writing the unchanged ptree in file2.xml
boost::property_tree::xml_writer_settings<char> settings('\t', 1);
write_xml("file2.xml", pt, std::locale(), settings);
return 0;
}
file.xml chứa:
<?xml version="1.0" ?>
<config>
<net>
<listenPort>10420</listenPort>
</net>
</config>
sau khi chạy các chương trình file2.xml chứa:
<?xml version="1.0" encoding="utf-8"?>
<config>
<net>
<listenPort>10420</listenPort>
</net>
</config>
Is có một cách để có một đầu ra tốt hơn, khác hơn là đi bằng tay thông qua đầu ra và xóa các dòng sản phẩm nào?
boost :: property_tree sử dụng một phân tích cú pháp XML gọi RapidXML, http://rapidxml.sourceforge.net/. Cả hai tăng :: property_tree và RapidXML được duy trì bởi Marcin Kalicinski. Tôi đề nghị bạn liên lạc trực tiếp với anh ấy. Bạn có thể tìm thấy địa chỉ thư của mình trên trang chủ RapidXML. – user763305
cảm ơn ildjarn để chỉnh sửa, nhưng các dòng trống ở đây vì một lý do!Câu hỏi Btw được hỏi cho người duy trì, tôi sẽ đăng câu trả lời nếu có một – foke