boost xml响应无法正常进行

时间:2017-11-09 13:52:47

标签: xml boost

<?xml version="1.0"?>
<methodCall>
<methodName>xyzabc</methodName>
<params>
<param>
<value><base64>123456</base64></value>
</param>
</params>
</methodCall>
boost::property_tree::ptree methodCall;
boost::property_tree::ptree methodName;
methodName.put("methodName","BioLookup");
boost::property_tree::ptree base64;
base64.put("base64", base64_value);
methodCall.add_child("methodCall",methodName);
methodCall.add_child("methodCall.methodName", base64);
boost::property_tree::write_xml("boost.xml", base64);

为什么我得到低于响应,我已经浏览了一些在stackoverflow或互联网上发布的示例代码。

<?xml version="1.0" encoding="utf-8"?>
<base64>123456</base64>

我想实现上面提到的回复

1 个答案:

答案 0 :(得分:0)

首先,Property Tree不是XML库。

是一个树库,所以请使用它:

<强> Live On Coliru

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

using boost::property_tree::ptree;

int main() {
    ptree pt;
    pt.put("methodCall.methodName", "xyzabc");
    pt.put("methodCall.params.param.value.base64", "123456");

    write_xml(std::cout, pt, boost::property_tree::xml_writer_make_settings<std::string>(' ', 4));
}

打印

<?xml version="1.0" encoding="utf-8"?>
<methodCall>
    <methodName>xyzabc</methodName>
    <params>
        <param>
            <value>
                <base64>123456</base64>
            </value>
        </param>
    </params>
</methodCall>