nokogiri version 1.2.2 has been released!
- http://nokogiri.rubyforge.org/
- http://github.com/tenderlove/nokogiri/wikis
- http://github.com/tenderlove/nokogiri/tree/master
- http://rubyforge.org/mailman/listinfo/nokogiri-talk
- http://nokogiri.lighthouseapp.com/projects/19607-nokogiri/overview
Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser.
Changes:
1.2.2 / 2009-03-14
-
New features
- Nokogiri may be used with soap4r. See XSD::XMLParser::Nokogiri
- Nokogiri::XML::Node#inner_html= to set the inner html for a node
- Nokogiri builder interface improvements
- Nokogiri::XML::Node#swap swaps html for current node (LH #50)
-
Bugfixes
- Fixed a tag nesting problem in the Builder API (LH #41)
- Nokogiri::HTML.fragment will properly handle text only nodes (LH
#43) - Nokogiri::XML::Node#before will prepend text nodes (LH #44)
- Nokogiri::XML::Node#after will append text nodes
- Nokogiri::XML::Node#search automatically registers root namepsaces
(LH #42) - Nokogiri::XML::NodeSet#search automatically registers namespaces
- Nokogiri::HTML::NamedCharacters delegates to libxml2
- Nokogiri::XML::Node#[] can take a symbol (LH #48)
- vasprintf for windows updated. Thanks Geoffroy Couprie!
- Nokogiri::XML::Node#[]= should not encode entities (LH #55)
- Namespaces should be copied to reparented nodes (LH #56)
- Nokogiri uses encoding set on the string for default in Ruby 1.9
- Document#dup should create a new document of the same type (LH #59)
- Document should not have a parent method (LH #64)
SUPPORT:
The Nokogiri mailing list is available here:
The bug tracker is available here:
SYNOPSIS:
require ‘nokogiri’
require ‘open-uri’
Get a Nokogiri::HTML:Document for the page we’re interested in…
doc =
Nokogiri::HTML(open(‘tenderlove - Google Search’))
Do funky things with it using Nokogiri::XML::Node methods…
Search for nodes by css
doc.css(‘h3.r a.l’).each do |link|
puts link.content
end
Search for nodes by xpath
doc.xpath(‘//h3/a[@class=“l”]’).each do |link|
puts link.content
end
Or mix and match.
doc.search(‘h3.r a.l’, ‘//h3/a[@class=“l”]’).each do |link|
puts link.content
end
REQUIREMENTS:
- ruby 1.8 or 1.9
- libxml2
- libxml2-dev
- libxslt
- libxslt-dev