當我在另一臺機器上運行我的代碼時,出現以下錯誤: ruby:symbol lookup error:/usr/local/ruby/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.7.2/ LIB /引入nokogiri/nokogiri.so:未定義的符號:xmlNextElementSibling如何在不調用「next_element」方法的情況下使用Nokogiri選擇下一個元素?
當進程開始,我得到以下警告: 警告:引入nokogiri始建反對的libxml版本2.7.8,但動態加載2.6.30 我目前無法更新nokogiri,所以我試圖深入研究源代碼,問題似乎與Nokogiri調用的next_element方法有關,該方法在我的機器上運行,但在另一臺機器上爆炸。 因此,我的問題:我如何輕鬆選擇下一個HTML元素(特別是表中的下一個「tr」)?
這是我使用
def get_weight(spot)
frame = spot.at_css("table[id='1']").css("tr")[1]
starter = frame.at('tr:contains("D7r5")')
return nil if starter == nil
starter = starter.next_element
peso = []
until starter.css("td")[1].nil?
data = starter.css("td")[1].inner_html.gsub(/\t{0..100}/, "").strip
ndecimal = data.scan(/[0-9]{1,4},?.?[0-9]{0,3}/).last.gsub(",", ".")
nmeasure = data.scan(/[kK][Gg]|\s[g]\s|[g]/).last
case nmeasure
when (/[kK][Gg]/)
peso << ndecimal.to_f
when (/g|\s[g]\s|[g]/)
peso << ndecimal.to_f/1000
end
starter.next_element.nil? ? break : starter = starter.next_element
end
return peso.max == 0 ? nil : peso.max
end
你能分享你的代碼嗎? – Andrew
不確定這是否適用於您的情況,但用於'next_element'的XPath相當於'following-sibling :: * [1]' – har07
@ har07謝謝!正是我在找什麼! 請將它作爲答案發布,我會接受它! – Jack