From: Aaron Patterson Date: 2009-02-23T13:22:01+09:00 Subject: [ANN] nokogiri 1.2.0 Released nokogiri version 1.2.0 has been released! * * * * * 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) ## 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: * http://gist.github.com/24605 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: * http://rubyforge.org/mailman/listinfo/nokogiri-talk The bug tracker is available here: * http://nokogiri.lighthouseapp.com/projects/19607-nokogiri/overview ## SYNOPSIS: require 'nokogiri' require 'open-uri' doc = Nokogiri::HTML(open('http://www.google.com/search?q=tenderlove')) #### # 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 ## INSTALL: * sudo gem install nokogiri * * * * * -- Aaron Patterson http://tenderlovemaking.com/