1BEGIN {print "1..2\n";} 2END {print "not ok 1\n" unless $loaded;} 3use XML::Parser; 4$loaded = 1; 5print "ok 1\n"; 6 7my $count = 0; 8 9my $cdata_part = "<<< & > '' << &&&>&&&&;<"; 10 11my $doc = "<foo> hello <![CDATA[$cdata_part]]> there</foo>"; 12 13my $acc = ''; 14 15sub ch { 16 my ($xp, $data) = @_; 17 18 $acc .= $data; 19} 20 21sub stcd { 22 my $xp = shift; 23 $xp->setHandlers(Char => \&ch); 24} 25 26sub ecd { 27 my $xp = shift; 28 $xp->setHandlers(Char => 0); 29} 30 31$parser = new XML::Parser(ErrorContext => 2, 32 Handlers => {CdataStart => \&stcd, 33 CdataEnd => \&ecd}); 34 35$parser->parse($doc); 36 37print "not " 38 unless ($acc eq $cdata_part); 39print "ok 2\n"; 40 41