c++ - Boost 属性树 (XML) 删除空行

标签 c++ xml boost formatting boost-propertytree

我正在使用 boost::property_tree 来读写 xml 配置文件。我想更改我的代码中某些标记的值并将它们写回文件,使用一些合理的 xml 格式(换行、缩进等)。

目前我正在使用

std::fstream fs("filename");
boost::property_tree::ptree pt;
bpt::xml_parser::read_xml(fs,pt);

// replace value
pt.erase("tagname");
pt.put("tagname",newval);

bpt::xml_parser::xml_writer_settings<char> xmlstyle(' ',4);
bpt::xml_parser::write_xml("filename",pt,std::locale(),xmlstyle);

但似乎每次删除标签时,它都会留下一个空行,经过一些迭代后,xml 变得不可读。有没有办法从属性树本身或使用 boost 从生成的 xml 文件中删除空行?

我知道还有其他方法可以通过再次读取和解析整个文件来删除换行符,但我希望有一种更方便的单行代码。

最佳答案

好吧,看起来答案已经在 Stack Overflow 上了,我只是没有找到它(帖子中没有提到换行符)

boost::property_tree XML pretty printing

解决方案是使用 boost::property_tree::xml_parser::trim_whitespace读取文件

关于c++ - Boost 属性树 (XML) 删除空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41138715/

相关文章:

java - 在 .xml 中定义时,SharedPreferences 的 defaultValue 是否始终读取为字符串?

c# - 无法识别指定的类型

c++ - Boost ptr_list 访问子类方法

c++ - 比较两个字符串看它们是否旋转

c++ fstream - 创建自己的格式化标志

c++ - 具有智能指针和析构函数的单例类被调用

.net - 是否有 XSLT 可用于将 WordprocessingML 转换为 RTF

c++ - 与 boost::multiprecision 或其他选项配合良好的多精度 Python 库?

c++ - 挥之不去的打开文件导致 "Too many open files"

c++ - 颠倒句子的单词?