我的目标:
文档yaml:
app:
name: xxx
version: xxx
description:
author:
name: xxx
surname: xxx
email: xxx@xxx.xx
Run Code Online (Sandbox Code Playgroud)
检查了什么:*
例子:
Module::Class.select('description/author/name')
Module::Class.select('*/name')
Module::Class.isset?('*/name')
Run Code Online (Sandbox Code Playgroud)
由于没有最新的 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
Run Code Online (Sandbox Code Playgroud)