Nokogiri和Rails - 小问题

时间:2014-01-07 21:51:43

标签: ruby-on-rails xml ruby-on-rails-4 nokogiri

我正在使用Nokogiri来解析这个XML:

<?xml version="1.0" encoding="utf-8"?>
<GetPropertiesResponse>
 <Properties>
  <Property>
   <Id>19</Id>
   <Name>Property 1</Name>
   <Breakfast></Breakfast>
   <Currency>GBP</Currency>
  </Property>

  <Property>
   <Id>13</Id>
   <Name>Property 2</Name>
   <Breakfast>IN</Breakfast>
   <Currency>EUR</Currency>
  </Property>

  <Property>
   <Id>15</Id>
   <Name>Property 3</Name>
   <Breakfast>EX</Breakfast>
   <Currency>GBP</Currency>
  </Property>

 </Properties>
</GetPropertiesResponse>
像这样:

...
doc = Nokogiri::XML(response.body)
@property = doc.xpath("//Property")

然后在我看来我正在显示每个属性名称:

<%= @property.each do |item| %>
  <%= item.xpath("Name").text %><br>
<% end %>

但我的输出总是有一个神秘的0,我不知道为什么?我的输出如下:

Property 1
Property 2
Property 3
0

1 个答案:

答案 0 :(得分:2)

这个

<%= @property.each do |item| %>
  <%= item.xpath("Name").text %><br>
<% end %>

有一个额外的=标志

应该是:

<% @property.each do |item| %>
  <%= item.xpath("Name").text %><br>
<% end %>

0是因为当@property.each完成时,如果删除=未返回值,则返回0