#!/usr/bin/perl -w
###########################################
# xmlparse - XML Parsing with XML::Parser
# Mike Schilli, 2005 (m@perlmeister.com)
###########################################
use strict;

use XML::Parser;

my $p = XML::Parser->new();
$p->setHandlers(
    Start => \&start,
    Char  => \&text,
    );
$p->parsefile("data.xml");

my $serial;
my $is_artist;

###########################################
sub start {
###########################################
  my($p, $tag, %attrs) = @_;

  if($tag eq "cd") {
      $serial = $attrs{serial};
  }

  $is_artist = ($tag eq "artist");
}

###########################################
sub text {
###########################################
  my($p, $text) = @_;

  if($is_artist and 
     $text eq "Foo Fighters") {
     print "$serial\n";
  }
}
