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


Hi,
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 */
{
public:
    using io::line_filter::string_type;

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

private:
    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 */"));
    out.push(io::file_sink("my_file.txt"));

    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]>
wrote:

> 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.
> http://www.w3.org/TR/REC-xml/#sec-comments
>
> Regards,
> UJ
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net