pugixml处理了半天发现输出至string很不方便,官方文档操作如下:
// 这里麻烦的是需要自己定义
struct xml_string_writer: pugi::xml_writer {
std::string result;
virtual void write(const void* data, size_t size)
{
result.append(static_cast<const char*>(data), size);
}
};
void fun() {
pugi::xml_document doc;
doc.load_string("<root>hello,world</root>");
xml_string_writer writer;
doc.save(writer, "", pugi::format_raw); // 加参数是为了去掉缩进
string result = writer.result;
}
我试了下用stringsteam就可以,已经在github上提了issue。你们可以参考下
void fun() {
pugi::xml_document doc;
doc.load_string("<root>hello,world</root>");
std::stringstream os;
doc.save(os, "", pugi::format_raw); // 无缩进
string result = os.str();
}