这是我的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,但是我不能只提取数值,并将其赋给一个变量。我怎么可能去做那件事?
发布于 2013-03-29 19:25:15
对我来说,puts parent.elements['current_revenue']打印<current_revenue>22369.7000</current_revenue>。如果你只需要22369.7000,你可以使用:
current_revenue = parent.elements['current_revenue'].textcurrent_revenue将是一个字符串,因此您可以使用to_f或其变体将其转换为数字。
https://stackoverflow.com/questions/15701984
复制相似问题