CAM-XML

 view release on metacpan or  search on metacpan

lib/CAM/XML/XMLTree.pm  view on Meta::CPAN


=over

=item Init()

=cut

sub Init
{
   my $expat = shift;
   $expat->{Stack}   = [];
   $expat->{Package} = 'CAM::XML';
   return;
}

=item Start($tag)

=cut

sub Start
{
   my $expat = shift;
   my $tag   = shift;

   my $obj   = $expat->{Package}->new($tag, @_);
   if (!$expat->{Base})
   {
      $expat->{Base} = $obj;
   }
   if (@{ $expat->{Stack} } > 0)
   {
      $expat->{Stack}->[-1]->add($obj);
   }
   push @{ $expat->{Stack} }, $obj;
   return;
}

=item End($tag)

=cut

sub End
{
   my $expat = shift;
   my $tag   = shift;
   pop @{ $expat->{Stack} };
   delete $expat->{Cdata};
   return;
}

=item Char($text)

=cut

sub Char
{
   my $expat = shift;
   my $text  = shift;

   $expat->{Stack}->[-1]
       ->add(($expat->{Cdata} ? '-cdata' : '-text') => $text);
   return;
}

=item CdataStart()

=cut

sub CdataStart
{
   my $expat = shift;
   $expat->{Cdata} = 1;
   return;
}

=item CdataEnd()

=cut

sub CdataEnd
{
   my $expat = shift;
   delete $expat->{Cdata};
   return;
}

=item Final()

=cut

sub Final
{
   my $expat = shift;
   delete $expat->{Stack};
   return delete $expat->{Base};
}

1;
__END__

=back

=head1 AUTHOR

Clotho Advanced Media Inc., I<cpan@clotho.com>

Primary Developer: Chris Dolan

=cut



( run in 1.273 second using v1.01-cache-2.11-cpan-39bf76dae61 )