ruby - 如何使用 Nokogiri 从图像标签中抓取文本?

标签 ruby xml image nokogiri

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

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

当我将 XPath 输入 Nokogiri 时,我得到:

[#<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 返回“Richmond”吗?我正在寻找一种在特定字符串之后返回文本的方法。如果没有办法只获取“Richmond”,我该如何让它返回值?

最佳答案

您可以使用 xpath 表达式提取 src 属性,例如

src = doc.at_xpath '//img/@src'

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

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

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

关于ruby - 如何使用 Nokogiri 从图像标签中抓取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14142902/

相关文章:

ruby-on-rails - 如何从 ActiveRecord 中名为 "object_id"的列中检索值?

c# - 更改嵌套节点的内部文本并为其分配 C# 中父节点的第一个兄弟节点的值

android - 在 WhatsApp 上共享数据无法在 android 11 上运行

c# - 将字节数组转换为图像 : Parameter is not valid

html - 5张合起来占全 Angular 的图片

ruby - Ruby 中的 URI.escape 和 URI.encode 有什么区别?

ruby - nanoc中如何为每个标签生成页面

ruby - 从 Ruby 中的数组中删除连续数字组

java - 如何使用 XMLStreamReader 读取 xml 中的 namespace ?

php - 将变量传递给 XSLT