by Hippo2000(1999/12/23)
XML::Grove::Subモジュールなのです。
なおこのドキュメントはXML::Groveモジュールをインストールしたときに一緒にはいるドキュメントを日本語に訳そうとしたものです。わかりにくい部分は本物を見てください。(^^;;
原本の著作権はKen MacLeod氏がお持ちです。
Ken MacLeodさんにはメールで了解をいただきました。なお内容等が間違っていたら修正します。ご連絡ください。
XML::Grove::Sub - Groveにフィルター・サブルーチンを実行します
use XML::Grove::Sub;
# XML::Grove::Document や XML::Grove::Elementにfilterメソッドを使う: @results = $grove_object->filter(\&sub [, ...]);
# XML::Grove::Subインスタンスを使う: $filterer = XML::Grove::Sub->new(); @results = $grove_object->accept($filterer, \&sub [, ...]);
XML::Grove::SubはGroveの中のすべてのオブジェクトにサブルーチン(sub)、フィルターを実行し、そしてそのサブルーチン(sub)からのすべての戻り値のリストを返します。サブルーチン(sub)はGroveオブジェクトを第1パラメータとして呼び出され、'filter()'や'accept()'を呼び出しの残りの引数が渡されます。
以下のフィルタは'A'または'B'から始まる'widget-no'属性を持ったすべての'foo'または'bar'要素のリストを返します。
@results = $grove_obj->filter(sub {
my $obj = shift;
if ($obj->isa('XML::Grove::Element')
&& (($obj->{Name} eq 'foo')
|| ($obj->{Name} eq 'bar'))
&& ($obj->{Attributes}{'widget-no'} =~ /^[AB]/)) {
return ($obj);
}
return ();
});
Ken MacLeod, ken@bitsko.slc.ut.us
perl(1), XML::Grove(3), Data::Grove::Visitor(3)
Extensible Markup Language (XML) <http://www.w3c.org/XML>
ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。