我正在解析yaml文件并搜索特定值,搜索匹配后我想获取行号并打印它。我设法做到了这一点,但主要问题是在使用YAML.LOAD
解析yaml文件时,空行被忽略。
我可以使用键计算其余行,即每行1个键,但我无法计算空行。请帮忙,现在已经坚持了几天。
这就是我的代码的样子:
hash = YAML.load(IO.read(File.join(File.dirname(__FILE__), 'en.yml')))
def recursive_hash_to_yml_string(input, hash, depth = 0)
hash.keys.each do |search|
@count = @count + 1
if hash[search].is_a?(String) && hash[search] == input
@yml_array.push(@count)
elsif hash[search].is_a?(Hash)
recursive_hash_to_yml_string(input, hash[search], depth + 1)
end
end
end
答案 0 :(得分:0)
我同意@Wukerplank - 解析文件应该忽略空白行。您可能想要考虑使用不同的方法查找行号。
也许你根本不需要解析YAML。如果您只是在文件中搜索某些匹配的文本并返回行号,那么您可以使用File.each_line
更好地阅读文件的每一行。
您可以迭代文件中的每一行,直到找到匹配项,然后对行号进行操作。