如何使用后代

时间:2016-10-18 10:51:33

标签: ruby nokogiri

我有类似的东西:

doc.css('results[name="test"]').map { |node| file.write node.ancestors("tests").first['name']; file.write "\n" }

但我想写的是:

doc.css('tests').map{ |node| file.write node.first['name'] if node.descendants('results').first['name'] == "test" }

但是没有方法descendants。 如果我想采用第二种方法,我应该在代码片段中修改哪些内容?

1 个答案:

答案 0 :(得分:1)

尝试

doc.css('tests').each { |node| file.write node['name'] if node.css('results[name="test"]').any? }

doc.css('tests').select { |node| node.css('results[name="test"]').any? }.each { |node| file.write node['name'] }