⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stream.pm

📁 one of the linux gd libraries
💻 PM
字号:
# $Id: Stream.pm,v 1.1 2003/07/27 16:07:49 matt Exp $package XML::Parser::Style::Stream;use strict;# This style invented by Tim Bray <tbray@textuality.com>sub Init {  no strict 'refs';  my $expat = shift;  $expat->{Text} = '';  my $sub = $expat->{Pkg} ."::StartDocument";  &$sub($expat)    if defined(&$sub);}sub Start {  no strict 'refs';  my $expat = shift;  my $type = shift;    doText($expat);  $_ = "<$type";    %_ = @_;  while (@_) {    $_ .= ' ' . shift() . '="' . shift() . '"';  }  $_ .= '>';    my $sub = $expat->{Pkg} . "::StartTag";  if (defined(&$sub)) {    &$sub($expat, $type);  } else {    print;  }}sub End {  no strict 'refs';  my $expat = shift;  my $type = shift;    # Set right context for Text handler  push(@{$expat->{Context}}, $type);  doText($expat);  pop(@{$expat->{Context}});    $_ = "</$type>";    my $sub = $expat->{Pkg} . "::EndTag";  if (defined(&$sub)) {    &$sub($expat, $type);  } else {    print;  }}sub Char {  my $expat = shift;  $expat->{Text} .= shift;}sub Proc {  no strict 'refs';  my $expat = shift;  my $target = shift;  my $text = shift;    doText($expat);  $_ = "<?$target $text?>";    my $sub = $expat->{Pkg} . "::PI";  if (defined(&$sub)) {    &$sub($expat, $target, $text);  } else {    print;  }}sub Final {  no strict 'refs';  my $expat = shift;  my $sub = $expat->{Pkg} . "::EndDocument";  &$sub($expat)    if defined(&$sub);}sub doText {  no strict 'refs';  my $expat = shift;  $_ = $expat->{Text};    if (length($_)) {    my $sub = $expat->{Pkg} . "::Text";    if (defined(&$sub)) {      &$sub($expat);    } else {      print;    }        $expat->{Text} = '';  }}1;__END__=head1 NAMEXML::Parser::Style::Stream - Stream style for XML::Parser=head1 SYNOPSIS  use XML::Parser;  my $p = XML::Parser->new(Style => 'Stream', Pkg => 'MySubs');  $p->parsefile('foo.xml');    {    package MySubs;        sub StartTag {      my ($e, $name) = @_;      # do something with start tags    }        sub EndTag {      my ($e, $name) = @_;      # do something with end tags    }        sub Characters {      my ($e, $data) = @_;      # do something with text nodes    }  }=head1 DESCRIPTIONThis style uses the Pkg option to find subs in a given package to call for each event.If none of the subs that thisstyle looks for is there, then the effect of parsing with this style isto print a canonical copy of the document without comments or declarations.All the subs receive as their 1st parameter the Expat instance for thedocument they're parsing.It looks for the following routines:=over 4=item * StartDocumentCalled at the start of the parse .=item * StartTagCalled for every start tag with a second parameter of the element type. The $_variable will contain a copy of the tag and the %_ variable will containattribute values supplied for that element.=item * EndTagCalled for every end tag with a second parameter of the element type. The $_variable will contain a copy of the end tag.=item * TextCalled just before start or end tags with accumulated non-markup text inthe $_ variable.=item * PICalled for processing instructions. The $_ variable will contain a copy ofthe PI and the target and data are sent as 2nd and 3rd parametersrespectively.=item * EndDocumentCalled at conclusion of the parse.=back=cut

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -