微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Ruby在YAML文档中搜索/检查值

我的目标:

>使用ypath / xpath检查yaml文档是否包含特定键的值
>使用ypath / xpath选择指定键的值

文件yaml:

app:
    name: xxx
    version: xxx
description:
    author:
        name: xxx
        surname: xxx
        email: xxx@xxx.xx

检查了什么:*

>谷歌
> stackoverflow
> Ruby API(YAML :: DBM作为其提供的方法之一是select)

例:

Module::Class.select('description/author/name')
Module::Class.select('*/name')
Module::Class.isset?('*/name')

解决方法

由于没有最新的YPath实现,我建议给ActiveSupport和Nokogiri一个机会:

yml = LOAD_YML_WITH_YOUR_PREFERRED_YAML_ENGINE

# ActiveSupport adds a to_xml method to Hash
xml = yml.to_xml(:root => 'yaml')

doc = Nokogiri::XML(xml)
doc.xpath("description/author/name").map do |name|
  puts [name['key'],name['value']]
end

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐