How to manipulate DOM with Ruby on Rails

dom, ruby-on-rails

Solution

If what you're trying to do is manipulate HTML documents inside a rails application, you should take a look at Nokogiri.

It uses XPath to search through the document. With the following, you would find any h1 with the "blue" css class inside a document.

require 'nokogiri'
require 'open-uri'

doc = Nokogiri::HTML(open('http://www.stackoverflow.com'))
doc.xpath('//h1/a[@class="blue"]').each do |link|
    puts link.content
end

After, if what you were trying to do was indeed parse the current page dom, you should take a look at JavaScript and JQuery. Rails can't do that.

Problem

As the title said, I have some DOM manipulation tasks. For example, I want to: - find all H1 element which have blue color. - find all text which have size 12px. - etc.. How can I do it with Rails? Thank you.. :) Update I have been doing some research about extracting web page content based on this paper-> http://www.springerlink.com/index/A65708XMUR9KN9EA.pdf The summary of the step is: - get the web url which I want to be extracted (single web page) - grab some elements from the web page based on some visual rules (Ex: grab all H1 which have blue color) - process the elements with my algorithm - save the result into my database. -sorry for my bad english-

Original source