如何为特定的 yaml-cpp 节点设置发射样式

Posted

技术标签:

【中文标题】如何为特定的 yaml-cpp 节点设置发射样式【英文标题】:How to set an emit style for a particular yaml-cpp node 【发布时间】:2013-01-11 16:39:36 【问题描述】:

我正在发出如下 YAML 文档:

YAML::Node doc; // ...populate doc...
YAML::Emitter out;
out << doc;

在节点层次结构中的某处,我有一个特定的序列,我想以Flow 样式发出,而其他一切都应使用默认样式设置。

除了手动发射每个节点并注意我感兴趣的节点之外,我似乎找不到任何其他方法。这似乎是为相对简单的事情付出高昂的代价。

理想情况下,我希望能够标记Node 以说“如果您被发射,请使用以下样式”。但我认为没有任何支持。

任何人都可以想出一种方法来不必手动发出整个文档吗?

非常感谢。

【问题讨论】:

【参考方案1】:

正如this question 中指出的那样,此功能已经实现。

可以使用以下代码设置节点样式

node.SetStyle(YAML::EmitterStyle::Flow);

node.SetStyle(YAML::EmitterStyle::Block);

【讨论】:

【参考方案2】:

目前不可能,但我已将其作为功能请求提交:

http://code.google.com/p/yaml-cpp/issues/detail?id=184

【讨论】:

谢谢杰西。我可能会按照您在功能请求中建议的内容来实现一些东西。如果您有兴趣,非常乐意在我完成后分享路径。

以上是关于如何为特定的 yaml-cpp 节点设置发射样式的主要内容,如果未能解决你的问题,请参考以下文章

可以在不使用发射器和节点事件的情况下遍历 yaml-cpp 树吗?

将多行字符串添加到 Yaml-cpp 节点

是否可以在 yaml-cpp 中设置发射器缩进的基本级别?

如何为一组边分配相同的样式?

WPF Grid - 如何为一列应用样式?

如何为 .NET 项目自定义强制代码样式规则 #yyds干货盘点#