[ANN] nokogiri 1.0.5 Released

Discussion in 'Ruby' started by Aaron Patterson, Nov 13, 2008.

  1. nokogiri version 1.0.5 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 with CSS3 and
    XPath search support.

    Changes:

    ### 1.0.5

    * Bugfixes

    * Added mailing list and ticket tracking information to the README.txt
    * Sets ENV['PATH'] on windows if it doesn't exist
    * Caching results of NodeSet#[] on Document

    == 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/22176

    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

    * <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>

    --
    Aaron Patterson
    http://tenderlovemaking.com/
    Aaron Patterson, Nov 13, 2008
    #1
    1. Advertising

  2. Aaron Patterson

    Dingding Ye Guest

    [Note: parts of this message were removed to make it a legal post.]

    hi.

    Is nested search supported?

    For example,

    xml =
    "<root><body><subbody>subbody1</subbody></body><body><subbody>subbody2</subbody></body></root>"
    doc.xpath("//body").each do |body|
    puts body.at("subbody").content
    end

    I expected to see

    subbody1
    subbody2

    but seems it always use the root element.

    On Thu, Nov 13, 2008 at 2:40 PM, Aaron Patterson <
    > wrote:


    > nokogiri version 1.0.5 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 ($B5x(B) is an HTML, XML, SAX, and Reader parser with CSS3 and
    > XPath search support.
    >
    > Changes:
    >
    > ### 1.0.5
    >
    > * Bugfixes
    >
    > * Added mailing list and ticket tracking information to the README.txt
    > * Sets ENV['PATH'] on windows if it doesn't exist
    > * Caching results of NodeSet#[] on Document
    >
    > == 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/22176
    >
    > 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'<http://www.google.com/search?q=tenderlove%27>
    > ))
    >
    > ####
    > # 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
    >
    > * <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>
    >
    > --
    > Aaron Patterson
    > http://tenderlovemaking.com/
    >
    >
    Dingding Ye, Nov 13, 2008
    #2
    1. Advertising

  3. On Thu, Nov 13, 2008 at 05:44:50PM +0900, Dingding Ye wrote:
    > hi.
    >
    > Is nested search supported?
    >
    > For example,
    >
    > xml =
    > "<root><body><subbody>subbody1</subbody></body><body><subbody>subbody2</subbody></body></root>"
    > doc.xpath("//body").each do |body|
    > puts body.at("subbody").content
    > end
    >
    > I expected to see
    >
    > subbody1
    > subbody2
    >
    > but seems it always use the root element.


    Yes. Try using an xpath search as such:

    xml =
    "<root><body><subbody>subbody1</subbody></body><body><subbody>subbody2</subbody></body></root>"

    Nokogiri::XML(xml).xpath("//body").each do |body|
    puts body.at(".//subbody").content
    end

    --
    Aaron Patterson
    http://tenderlovemaking.com/
    Aaron Patterson, Nov 13, 2008
    #3
  4. Aaron Patterson

    Mark Thomas Guest

    Re: nokogiri 1.0.5 Released

    On Nov 13, 3:44 am, Dingding Ye <> wrote:
    > [Note:  parts of this message were removed to make it a legal post.]
    >
    > hi.
    >
    > Is nested search supported?
    >
    > For example,
    >
    > xml =
    > "<root><body><subbody>subbody1</subbody></body><body><subbody>subbody2</sub­body></body></root>"
    > doc.xpath("//body").each do |body|
    >   puts body.at("subbody").content
    > end
    >
    > I expected to see
    >
    > subbody1
    > subbody2
    >
    > but seems it always use the root element.


    Let me try to clear up the confusion.

    at() is from Hpricot, and it searches from the root node. It is
    typically used as doc.at('element')

    search() is also from Hpricot, and it searches from the current node.
    This is perhaps the behavior you were expecting. An alias is '/', as
    in doc/"html/body"

    xpath() is like find() from libxml and you can nest those calls too.
    Note that the Hpricot xpath(), which returns the path to the node, is
    available in Nokogiri as path().

    -- Mark.
    Mark Thomas, Nov 13, 2008
    #4
  5. Great work!
    Marcin Raczkowski, Nov 13, 2008
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Aaron Patterson

    [ANN] nokogiri 1.0.0 Released

    Aaron Patterson, Oct 31, 2008, in forum: Ruby
    Replies:
    0
    Views:
    98
    Aaron Patterson
    Oct 31, 2008
  2. Aaron Patterson

    [ANN] nokogiri 1.0.3 Released

    Aaron Patterson, Nov 4, 2008, in forum: Ruby
    Replies:
    0
    Views:
    114
    Aaron Patterson
    Nov 4, 2008
  3. Aaron Patterson

    [ANN] nokogiri 1.0.6 Released

    Aaron Patterson, Nov 17, 2008, in forum: Ruby
    Replies:
    2
    Views:
    105
    Aaron Patterson
    Nov 18, 2008
  4. Aaron Patterson

    [ANN] nokogiri 1.0.7 Released

    Aaron Patterson, Dec 3, 2008, in forum: Ruby
    Replies:
    1
    Views:
    117
    Avdi Grimm
    Dec 3, 2008
  5. Aaron Patterson

    [ANN] nokogiri 1.3.0 Released

    Aaron Patterson, May 30, 2009, in forum: Ruby
    Replies:
    14
    Views:
    235
    Florian Gilcher
    Jun 9, 2009
Loading...

Share This Page