2013-03-29 2 views
0

Это мой XML-файл:REXML - Сохранение определенного элемента

<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 извлечь current_revenue элемент, где DATE_RANGE составляет 12 месяцев. У меня есть следующий код:

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, однако, я не в состоянии извлечь только численное значение и присвоить этой переменной. Как я мог это сделать?

ответ

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 или его вариант, чтобы преобразовать его в число.

+0

Спасибо, это работает! – amareshray

+0

Отлично, вы можете отметить это как принятый ответ :) – ramblex

Смежные вопросы