use XML::Parser; my $file = shift; my $parser = new XML::Parser(Style=>'Subs', Pkg=>'SubHandlers', ErrorContext => 2); $parser->setHandlers(Char => \&char_handler); $parser->parsefile($file); # --------------------------------------------- sub char_handler { my ($p, $data) = @_; print $data; } # --------------------------------------------- package SubHandlers; sub stock_quotes { print "Stock Quotes\n"; print ""; } sub stock_quotes_ { print ""; } sub stock_quote { print "\n"; } sub stock_quote_ { print "\n
\n\n\n\n"; } sub symbol { print "\n\n\n
\n"; } sub when { print "
\n"; } sub when_ { print "\n\n\n\n"; } sub price { my $expat = shift; my $element = shift; # Read the attributes while (@_) { my $att = shift; my $val = shift; $attr{$att} = $val; } my $type = $attr{'type'}; my $price = $attr{'value'}; my $rowbreak = 0; if ($type eq 'ask') { $label="Ask Price"; } elsif ($type eq 'open') { $label="Opening Price"; $rowbreak = 1; } elsif ($type eq 'dayhigh') { $label="Today's High"; } elsif ($type eq 'daylow') { $label="Today's Low"; $rowbreak = 1; } print "\n"; print "\n"; if ($rowbreak) { print "\n"; } } sub price_ { } sub change { print "\n"; print "\n"; } sub volume { print "\n\n"; }
\n$label$price
\nChange\n"; } sub change_ { print "\nVolume\n"; } sub volume_ { print "