有沒有辦法使用 boost::property_tree 撰寫 xml,沒有縮進字符但有新行?
考慮這段代碼
using namespace boost::property_tree;
int main() {
ptree tree;
ptree* root = &tree.add("root", "");
root->add("something", "yes");
root->add("something2", "no");
write_xml("test.xml", tree, std::locale(), xml_writer_settings<ptree::key_type>('\n', 0));
}
當 indent_count 設定為 0 時,我們得到這種格式
<?xml version="1.0" encoding="utf-8"?>
<root><something>yes</something><something2>no</something2></root>
我想要實作的是:
<?xml version="1.0" encoding="utf-8"?>
<root>
<something>yes</something>
<something2>no</something2>
</root>
有誰知道如何在不通過檔案操作添加 '\n' 的情況下做到這一點?我正在使用提升 1_66。
uj5u.com熱心網友回復:
看起來你不能這樣做。看看:https ://github.com/boostorg/property_tree/blob/d30ff9404bd6af5cc8922a177865e566f4846b19/include/boost/property_tree/detail/xml_parser_write.hpp#L76
bool want_pretty = settings.indent_count > 0;
然后,在 101 行:
if (want_pretty)
stream << Ch('\n');
所以,如果你想有新的行分隔符,你必須在設定中有一個或多個縮進字符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/415615.html
標籤:
上一篇:屬性“targetNamespace”不允許出現在元素中
下一篇:xsl將子元素分組到父標簽中
