Обе эти работы:
require 'nokogiri'
doc = Nokogiri::XML(xml)
doc.search('//div[@id]/text()').select{ |n| n.text['Total'] }.first.text.split.last
и
doc.search('//div/text()').select{ |n| n.text['Total'] }.first.text.split.last
Разница в том, что первый должен работать немного быстрее, если вы знаете, что у div, который вы ищете, всегда есть id
.
Если идентификатор всегда начинается с «showTotalSubIndex», вы можете использовать:
doc.at('//div[starts-with(@id,"showTotalSubIndex")]').first.text.split.last
и если вы знаете, что в документе будет только один, вы можете использовать:
doc.at('//div[starts-with(@id,"showTotalSubIndex")]').text.split.last
EDIT:
Райан полагает, что структура XML может быть согласованной. Если так:
doc.at('//div[2]').text[/(\$\d+)/, 1]
: -)