我需要从以下代码中获取值9,70,但我无法这样做。数字的逗号是数字的一部分而不是分隔符,因此在一个字符串中需要整数。 id="cheapest wine"
是唯一的,但它会一直返回错误。
<tr class="chartTableHeader">
<tr class="chartTableRow">
<td class="chartTableColFirst" style="height: 19px">
<td class="chartTableCol" style="height: 19px">
<td class="chartTableCol" style="height: 19px">
<span id="cheapest wine">9,70</span>
</td>
<td class="chartTableCol" style="height: 19px">
<td class="chartTableCol" style="height: 19px">
<td class="chartTableCol" style="height: 19px">
答案 0 :(得分:1)
使用Nokogiri,并假设您的html格式正确,您可以获得如下值:
require 'nokogiri'
xml = <<-EOF
<root>
<span id="cheapest wine">9,70</span>
</root>
EOF
doc = Nokogiri::XML(xml)
doc.xpath('//span[@id="cheapest wine"]').map do |add|
puts add.inner_text
end
这里的关键是XPath查询://span[@id="cheapest wine"]
,它搜索span
为id
的{{1}}个节点(作为id,应该只有一个)。
答案 1 :(得分:0)
使用以下XPath表达式:
number(
translate(tr[@class='chartTableRow']/td/span[@id='cheapest wine'],
',',
'.'
)
)
其中评估XPath表达式的当前节点是您问题中显示的XML片段的父节点。
上面的XPath表达式的计算结果为9.7