首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libyaml:检索根元素的键

libyaml:检索根元素的键
EN

Stack Overflow用户
提问于 2021-11-07 15:46:38
回答 1查看 54关注 0票数 0

考虑到这个简单的YAML示例:

代码语言:javascript
复制
{CR: {ab: 12}}

我要拿回CR。也许我不知道正确的单词来识别“根键”,因此我没有发现任何有用的东西。我在Ubuntu20.04中使用基于QtYaml利比安

代码语言:javascript
复制
QString yaml = "{CR: {ab: 12}}";
YAML::Node root = YAML::Load(yaml.toStdString().c_str());

QString key;
YAML::convert<QString>().decode(root, key);
qDebug() << key;

它返回一个空字符串。我要做什么才能拥有key = "CR"

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-07 23:14:45

这不是libyaml;libyaml没有带有名称空间的C++接口。从API调用的外观判断,您使用的是yaml-cpp

YAML文档有一个根节点,在您的例子中,这是一个映射。映射是一个集合节点,因此不能正确地转换为字符串。您想要的是提取映射的第一个键:

代码语言:javascript
复制
root.begin()->first.as<QString>();

begin()在根映射键值对上返回一个迭代器。->取消对其第一项的引用。first检索密钥。as<QString>()将密钥转换为QString并返回它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69873984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档