2012-08-01 50 views
-2

我怎樣才能獲取TR引入nokogiri的其中提到在這種結構中引入nokogiri的代碼在HTML響應的TR我怎麼能賣到這個結構中的HTML響應

<html> 
    <body> 
    <table> 

    </table> 

    <table> 
    <tbody> 
     <tr> 
     <td> 
      <table> 
      <tr></tr> 
       <tr><td> wanna this text as output.</td></tr> 
      </table> 
     </td> 
     </tr> 
    </tbody> 
    </table> 
    </body> 
</html> 
+1

表結構無效。 – az7ar 2012-08-01 10:48:52

+0

ok結構是這樣的 – SSP 2012-08-01 10:57:00

+0

請在發佈問題之前在這裏檢查SE ..並確保問題非常清楚與正確的數據。 – 2012-08-01 11:23:11

回答

0

我更喜歡使用CSS訪問器,因爲他們更寬容。使用你的HTML樣品,我會使用:

irb(main):026:0> doc.search('table table tr').last.text 
" wanna this text as output." 

或者,XPATH訪問是:

irb(main):042:0> doc.search('//table//table//tr').last.text 
" wanna this text as output." 

你要找的含多個行的嵌套表。你想要最後一行。

每當您查看瀏覽器中的HTML並查看<table><tbody>組合時,請保持警惕。瀏覽器會進行大量的代碼修正,當您直接檢索HTML並將其傳遞到解析器時,可能會導致不存在的標記。而且,在瀏覽器輸出中看到的那些不存在的標籤在添加時會拋棄CSS或XPath訪問。特別是,<tbody>是一個真正的常見問題。

0

有多種方式訪問該文本,例如:

html = Nokogiri::HTML my_html_string 
row_text = html.at('//table[2]/tbody/tr/td/table/tr[2]').text 
+0

這一個不適合我 – SSP 2012-08-01 13:52:42

+1

這是因爲你的實際HTML是不同的。 – taro 2012-08-01 14:04:01