所以我发现这里引用了“ pretty-print ”修剪空白标志:boost::property_tree XML pretty printing
我找到了 Boost::Property_Tree 1.50 的 read_xml() 函数的文档: http://www.boost.org/doc/libs/1_50_0/doc/html/boost/property_tree/xml_parser/read_xml_id1073248.html
但是我一生都无法弄清楚如何在读取然后写入 XML 时启用忽略注释和修剪空白标志!任何帮助将不胜感激。
我认为我的主要问题是函数原型(prototype)。使用的标志如何转换为整数,就像函数原型(prototype)似乎要求的那样?
最佳答案
您必须使用按位 OR(竖线字符 |
)将标志连接在一起。这是使用单个参数指定多个标志的相当常见的方法。例如:
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
int main(int argc, char* argv[])
{
ptree pt;
using namespace boost::property_tree::xml_parser; // just to keep the flags nice and short
read_xml("file.xml", pt, trim_whitespace | no_comments);
return 0;
}
关于你的第二个问题,标志被声明为整数。当您执行按位或操作时,表示整数的位将被组合以生成具有唯一值的新整数。例如,数字 2 的位(二进制)表示形式为 00000010,数字 4 的位表示形式为 00000100(假设您使用 8 位来表示整数)。按位或运算比较每一位,如果其中一个为 1 或两者都为 1,则结果为 1,否则为 0。在我们的例子中:
00000010
| 00000100
----------
00000110
这是位表示法中的数字 6。
关于c++ - 使用多个标志在 Boost Property Tree 1.50 中使用 read_xml() 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11639623/