如何使用Nokogiri从图像标签中删除文本?

时间:2013-01-03 16:24:48

标签: ruby xml image nokogiri

我需要从格式如下的图像标记列表中获取文本:

<img src="/images/TextImage.ashx?text=Richmond" style="border-width:0px;" class="">

当我进入Nokogiri的XPath时,我得到:

[#<Nokogiri::XML::Element:0x80513954 name="img" attributes=[#<Nokogiri::XML::Attr:0x805138dc name="src" value="/images/TextImage.ashx?text=Richmond">, #<Nokogiri::XML::Attr:0x805138b4 name="style" value="border-width:0px;">]>] 

有什么方法可以告诉Nokogiri返回“里士满”吗?我正在寻找一种方法,它将在某个字符串后返回文本。如果没有办法只获得“里士满”,我该如何让它返回值?

1 个答案:

答案 0 :(得分:2)

您可以使用xpath表达式(如

)提取src属性
src = doc.at_xpath '//img/@src'

之后,您需要从属性中提取名称,可能使用正则表达式。

例如(这可能需要更多参与,具体取决于HTML页面中src属性中可能的格式):

/\?text=(.*)/ =~ src
puts $1