#!/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"; } }