nokogiri version 1.2.0 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.0 / 2008-02-22
-
New features
- CSS search now supports CSS3 namespace queries
- Namespaces on the root node are automatically registered
- CSS queries use the default namespace
- Nokogiri::XML::Document#encoding get encoding used for this document
- Nokogiri::XML::Document#url get the document url
- Nokogiri::XML::Node#add_namespace add a namespace to the node LH#38
- Nokogiri::XML::Node#each iterate over attribute name, value pairs
- Nokogiri::XML::Node#keys get all attribute names
- Nokogiri::XML::Node#line get the line number for a node (Thanks
Dirkjan Bussink!) - Nokogiri::XML::Node#serialize now takes an optional encoding
parameter - Nokogiri::XML::Node#to_html, to_xml, and to_xhtml take an optional
encoding - Nokogiri::XML::Node#to_str
- Nokogiri::XML::Node#to_xhtml to produce XHTML documents
- Nokogiri::XML::Node#values get all attribute values
- Nokogiri::XML::Node#write_to writes the node to an IO object with
optional encoding - Nokogiri::XML::ProcessingInstrunction.new
- Nokogiri::XML::SAX::PushParser for all your push parsing needs.
-
Bugfixes
- Fixed Nokogiri::XML::Document#dup
- Fixed header detection. Thanks rubikitch!
- Fixed a problem where invalid CSS would cause the parser to hang
-
Deprecations
- Nokogiri::XML::Node.new_from_str will be deprecated in 1.3.0
-
API Changes
- Nokogiri::HTML.fragment now returns an XML::DocumentFragment (LH
#32)
- Nokogiri::HTML.fragment now returns an XML::DocumentFragment (LH
FEATURES:
- XPath support for document searching
- CSS3 selector support for document searching
- XML/HTML builder
- Drop in replacement for Hpricot (though not bug for bug)
Nokogiri parses and searches XML/HTML very quickly, and also has
correctly implemented CSS3 selector support as well as XPath support.
Here is a speed test:
Nokogiri also features an Hpricot compatibility layer to help ease the
change
to using correct CSS and XPath.
SUPPORT:
The Nokogiri mailing list is available here:
The bug tracker is available here:
SYNOPSIS:
require ‘nokogiri’
require ‘open-uri’
doc =
Nokogiri::HTML(open(‘tenderlove - Google Search’))
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
- libxml
- libxslt