Boost logo

Boost Users :

Subject: Re: [Boost-users] boost::property_tree::ptree with write_xml
From: Алексей Филиппов (sarum9in_at_[hidden])
Date: 2015-03-19 05:51:36

I don't know how to solve it with pure Boost.PropertyTree,
but using Boost.Iostreams it can be done quite easy.
Example below, hope it suits your need.
Configuring XML-formatting itself I leave up to you.

#include <boost/iostreams/device/file.hpp>
#include <boost/iostreams/filter/line.hpp>
#include <boost/iostreams/filtering_stream.hpp>

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

namespace io = boost::iostreams;

class prefix_front_pusher: public io::line_filter /* may use wline_filter */
    using io::line_filter::string_type;

    explicit prefix_front_pusher(const string_type &prefix):
        m_prefix(prefix) {}

    string_type do_filter(const string_type &line) override
        return m_prefix + line;

    const string_type m_prefix;

int main()
    io::filtering_ostream out;
    out.push(prefix_front_pusher("/* my prefix */"));

    boost::property_tree::ptree ptree;
    ptree.put("hello", "world");
    boost::property_tree::write_xml(out, ptree);

On Thu, Mar 19, 2015 at 6:10 AM Uthpal Urubail <uthpal.urubail_at_[hidden]>

> Unfortunately my requirement is to add comments to the beginning of the
> line. I understand this makes invalid XML.
> I don't know about the property tree writer, but that's an invalid Xml
> comment.
> Regards,
> UJ
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at