2015-03-31 15 views
10

Để khá in đầu ra XML của tôi với boost::property_tree, tôi đã viết đoạn mã sau:lỗi Compilation với boost :: property_tree :: xml_writer_settings

#include <boost/property_tree/ptree.hpp> 
#include <boost/property_tree/xml_parser.hpp> 

int main() 
{ 
    std::string filename = "test.xml"; 
    boost::property_tree::ptree pt; 
    pt.put("some.path.value", "hello"); 

    boost::property_tree::xml_writer_settings<char> settings('\t', 1); 
    write_xml(filename, pt, settings); 
} 

Đáng tiếc là tôi có lỗi này và tôi không thể tìm thấy bất kỳ thông tin về nó:

/usr/local/include/boost/property_tree/detail/xml_parser_writer_settings.hpp:38:19: error: type 'char' cannot be used prior to '::' because it has no members 
    typedef typename Str::value_type Ch; 
        ^

Bất kỳ ý tưởng nào?

+0

[Tài liệu này] (http://www.boost.org/doc/libs/master/boost/property_tree/detail/xml_parser_writer_settings.hpp) ** có thể ** giúp đỡ bạn, nhưng tôi không chắc chắn –

+0

đây là tiêu đề tôi đang sử dụng –

+1

time_ _next: Xin vui lòng bao gồm mã có liên quan trong câu hỏi, vì vậy chúng tôi có thể ace câu trả lời, thay vì vẽ ra "nhờ nhưng ... "trong các ý kiến ​​:) – sehe

Trả lời

10

Tôi muốn sử dụng chức năng helper

std::ofstream file("test.xml"); 

boost::property_tree::ptree pt;  
pt.put("some.value", "test"); 

boost::property_tree::write_xml(
    file, pt, 
    boost::property_tree::xml_writer_make_settings<std::string>('\t', 1)); 
+0

Nó hoạt động nhưng làm thế nào tôi có thể sử dụng nó với write_xml? Khi viết 'write_xml (tên tệp, pt, boost :: property_tree :: xml_writer_make_settings ('\ t', 1))' Tôi có lỗi sau: 'không có hàm phù hợp để gọi tới 'write_xml' –

+1

@MartinDelille Bạn cần vượt qua một luồng chứ không phải tên tệp. Các tài liệu thì nhẫn nhục :) http://www.boost.org/doc/libs/1_57_0/doc/html/boost/property_tree/xml_parser/write_xml_idp113303904.html (cũng vui bạn cắt ngắn được thông báo bởi vì bây giờ tôi đang gặp phải đoán các loại 'filename' và' pt' là gì). – sehe

+0

cảm ơn sự giúp đỡ của bạn! –

Các vấn đề liên quan