0

これは私のXMLファイルです:

<performance_summary_response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://cakemarketing.com/affiliates/api/2/">
  <success>true</success>
  <row_count>7</row_count>
  <periods>
    <period>
      <date_range>12 Months</date_range>
      <current_revenue>22369.7000</current_revenue>
      <previous_revenue>3664.1000</previous_revenue>
      <currency_symbol>$</currency_symbol>
    </period>
  </periods>
</performance_summary_response>

REXML を使用して、date_range が 12 か月の current_revenue 要素を抽出しています。私は次のコードを持っています:

period = ['12 Months']

data.elements.each('//date_range/..') do |parent|
  if (period.include? parent.elements['date_range/text()'].to_s)
    puts parent.elements['current_revenue']

  end

end

これは 22369.7000 を出力しますが、数値だけを抽出して変数に代入することはできません。どうすればそれを行うことができますか?

4

1 に答える 1

1

私のためにputs parent.elements['current_revenue']印刷し<current_revenue>22369.7000</current_revenue>ます。22369.7000 だけが必要な場合は、次を使用できます。

 current_revenue = parent.elements['current_revenue'].text

current_revenueは文字列になるため、to_fまたはそのバリアントを使用して数値に変換できます。

于 2013-03-29T11:25:15.017 に答える