From: Aaron Patterson Date: 2010-11-29T13:48:59+09:00 Subject: [ruby-list:47656] [ANN] nokogiri 1.4.4 リリース 洗っていないお皿の神秘:Part 1 秘密を守る術を知っている町、そんな町のある寒く暗い夜の事。 私は両親の家の地下で”タコ焼き用鉄板2.0”の開発中、その女は侵入してきた。 女:あなたが有名な私立探偵たこ焼き仮面ですか? 私:それは、お前の答え次第だ。 女:あなたのお母さんよ。台所に皿を洗いに行って来なさい。” 私:ええ?今日はもう、お皿を洗いました! その日の皿洗いは済ましておいた筈なのに、どうやったら勝手に汚れた食器が増えるというのだろうか! 私は、自分の目で確認する為に台所へ向かった。 そこには皿が積まれた沢山の塔が存在した。こんなに家事が沢山あるのに、どうやったら私のタコ焼き鉄板2.0の計画を終わらせる事が出来るのだというのか! 何か怪しい事が起きている、調査しなければいけない。 私は虫眼鏡を取り出し順番に検閲した。 パイの残り。 しかし、私の家族は揚げ物以外は食べない筈。どうやったらパイの残りがお皿に付くのか? そして、私は気がついた、そう、このお皿の塔達は私達家族の物ではない事を!では、誰のお皿なのだろうか?!? 次回の”私立探偵たこ焼き仮面” (1.4.5)の巻で会いましょう。 今回の”私立探偵たこ焼き仮面”は”ピンクの戦闘士 RubyConf 5k マラソン戦闘の準備” http://www.youtube.com/watch?v=KfdIrdD1FbM と美味しい七面鳥の提供でお送りしました。 ”どうして一面の鳥を食べますか?七面を持つ鳥が食べれるというのに。” 10月30日に”Nokogiri”は2歳のお誕生日を迎える事ができました。 全ての皆さんにNokogiriの母 (@flavorjones) と共に私、Nokogiriの父より感謝させて頂きます。 パッチを送ってくれた方、チケットをファイルしてくれた方へ、そしてnokogiriを使ってくれている方のサポートがある事に感謝と幸せを感じます。 ==== nokogiri version 1.4.4 が、遂にリリースされました!!! * * * * * Nokogiri はHTMLとXMLとSAXとXSLTとReaderのパーサーです。とりわけ重要な特徴は、 ドキュメントをXPathやCSS3セレクター経由で探索する機能を持つことです。 XMLは暴力に似ている - XMLが君の問題を解決しないとしたら、君はXMLを十分に 使いこなしていない事になる。 ## FEATURES: * XPath による探索 * CSS3 のセレクターによる探索 * XML/HTMLのビルダー XML/HTMLの高速な解析と探索検索、ならびにCSS3セレクタとXPathをサポートしています。 ## SUPPORT: 日本語でNokogiriの {メーリングリスト}[http://groups.google.com/group/nokogiri-list] * http://groups.google.com/group/nokogiri-list {バグ報告}[http://github.com/tenderlove/nokogiri/issues] * http://github.com/tenderlove/nokogiri/issues IRCのチャンネルはfreenodeの #nokogiri です。 ## 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 Changes: ### 1.4.4 2010年11月15日 * 新機能 * XML::Node#children=ノード内のhtml reparented node(s)を返す事によって親の変更ができる。 * XSLT はfunction extensionsをサポート。#336 * XPath はパラメーター置換を結合する. #329 * XML::Reader node typeを一定化させる. #369 * SAX Parser context は行とコラムの両方の情報を提供する * バグの修正 * XML::DTD#attributes は属性が存在しない際、nilの代わりに空のハッシュを返す * XML::DTD#{keys,each} は文字通りに機能するようになった #324 * {XML,HTML}::DocumentFragment.{new,parse} 行送りと末尾の空白を除去しなくなった #319 * XML::Node#{add_child,add_previous_sibling,add_next_sibling,replace} は文字列を見送る際にNodeSetを返す * 不確定タグはフレグメント内で要、不要に関係なく解析される #315 * XML::Node#{replace,add_previous_sibling,add_next_sibling} libxmlのtext node merging に関わるedge caseを修正する #308 * xpath handler argument が整列している最中に起こるGCでのsegfaultを修正 #345 * Slop decoratorが既に確定された定義と共に正常に機能させるための便宜上の処置 #330 * 子ノードが複製される際に起こるメモリ漏れの修正 #353 * an+b記号の無使用時に発生するoff-by-oneバグとnth-last-{child,of-type} CSSセレクターの修正 #354 * 非名前空間属性がSAX::Document#start_elementへパスできるように修正 #356 * libxml2 in-contextの解析バグの処置  #362 * フレグメント内のノードの中にあるNodeSet#wrapの修正 #331 -- Aaron Patterson http://tenderlovemaking.com/