3
我制作了如下所示的yaml文件。yaml解析的方式? (yaml-cpp)
Define1: &Define1
0: zero
1: one
Define2:
<<: *Define1
2: two
并尝试在Online YAML parser。结果如下所示。 (只要得到节点是如何构造的。)
{
"Define1": {
"0": "zero",
"1": "one"
},
"Define2": {
"0": "zero",
"1": "one",
"2": "two"
}
}
我当然希望“YAML-CPP”将解析方式相同,但它的有些不同。
我想是这样的。 (几乎肯定)
{
"Define1": {
"0": "zero",
"1": "one"
},
"Define2": {
"Define1": {
"0": "zero",
"1": "one"
},
"2": "two"
}
}
到底是什么!那么我是否必须在循环时检查节点类型?
这是一个已知的问题?或'yaml-cpp'只是解析这种方式?
这段代码是我做过的。
// already parsed
const YAML::Node& node = &(docYAML)["Define2"];
for (YAML::Iterator it=node->begin(); it!=node->end(); ++it)
{
const YAML::Node& nodeList = it.second();
std::string str;
nodeList[0] >> str;
}
谢谢你的答案,谢谢你的链接。我猜这似乎仍然不支持合并,因为问题仍然存在。也许我必须寻找另一种解决方案。谢谢。 ;) – SeniorLee 2011-02-23 22:38:13