获取XML属性值

时间:2015-10-07 18:04:31

标签: ruby-on-rails ruby nokogiri

这是我的XML:

<response errors="0"><person><middlename/><name>Egor</name><carsList><car default="true">0777AD</car></carsList><surname>Petrov</surname></person><funds>505.56</funds></response>

我需要获取default元素的<car>属性的值。

我在使用attr()attributue()的Stack Overflow上找到了一些解决方案,但我没有成功使用它们。

我的代码是:

unless @account.xpath("//person//carslist").blank?
  @account.xpath("//person//carslist").each do |car|

    p car.attribute('default')

  end
end

在我的控制台上,我看到没有,但需要看到真的。

正确的变体是:

unless @account.xpath("//person//carsList/*").blank?
  @account.xpath("//person//carsList/*").each do |car|

    p car.attribute('default').content

  end
end

它有什么用?

1 个答案:

答案 0 :(得分:1)

你想:

unless @account.xpath("//person//carsList/*").blank?

请注意carsList中的大写字母“L”,而不是carslist。另请注意/*以获取carList的子节点。

更正后的代码为:

  unless @account.xpath("//person//carsList/*").blank?
    @account.xpath("//person//carsList").each do |car|

      p car.attribute('default')

    end
  end