Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
209 views
in Technique[技术] by (71.8m points)

html - How do I select either a th or a td from a table row?

I'm using Nokogiri with Rails 5. How do I select either a "th" element or a "td" element from a table row? My goal is to get all the text of cells in a row (if there is a more generic, elegant solution, I'm all in). Here's what I have

      text_all_rows = all_rows.map do |row|
        row_values = row.css('td | th').map{|str| str.text }
                                  .map{|str| str.gsub(/[[:space:]]+/, ' ').gsub(/Ap{Space}+|p{Space}+z/, '') }.join("	")
        [*row_values]
      end

As you may have noticed "td | th" is not valid syntax for selecting the "th" or "td" elements from the row.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Use a , (comma) to select multiple nodes:

row_values = row.css('td, th').map{|str| str.text }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...