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$label | \n";
print "$price | \n";
if ($rowbreak) {
print " \n";
}
}
sub price_ {
}
sub change {
print "| \nChange\n | \n";
print "";
}
sub change_ {
print " | \n";
}
sub volume {
print "\nVolume\n | \n";
}
sub volume_ {
print " | \n";
}
|