如何从ruby中的td获取数据的值

时间:2015-04-15 12:32:37

标签: html ruby xpath nokogiri

我有以下html表,我想在哪里获取使用

的数据值
   <table>
     <tr>
      <td data="1">Hello 1</td>
      <td data="2">Hello 2</td>
      <td data="3">Hello 3</td>
      <td data="4">Hello 4</td>
      </tr>
</table>


我正在使用nokogiri读取html的xpath,如下所示


# Crawl a HTML elements using Nokogiri  
def crawlTableData()
  require 'open-uri' 
  require 'nokogiri' 
  open("http://localhost:/somepage",http_basic_authentication: ["username", "somepassword"]) do |f|
    doc = Nokogiri::HTML(f.read) 
    return doc.xpath('//*[@id="main-panel"]/table[1]/tbody/tr[2]/td[2]').text
  end  
end

所以最后它没有给我任何回报。 任何人都可以建议什么是获取

数据值的正确方法

1 个答案:

答案 0 :(得分:1)

如果您只想要一个<td>(s)data属性的值,请使用

doc.at('//*[@id="main-panel"]/table[1]/tbody/tr[2]/td[2]')['data']

at 搜索第一次出现的路径。如果没有找到则返回nil,否则返回Node。

要获取属性name的属性值,请使用[](name)方法。