#With XML data, the main conditions include: #The start of an XML tag #The end of an XML tag #The data between the start and end of an XML tag #The start of the XML document #The end of the XML document #Parameters Passed to Your XML Callback Routines #Routine Parameters #Start XML::Parser object reference, element name, attribute, value. #End XML::Parser object reference, element name #Char XML::Parser object reference, text data #Init XML::Parser object reference #Final XML::Parser object reference #!/usr/bin/perl -w use XML::Parser; $filename = 'yourXML.xml'; print "Opening $filename\n"; $parser = new XML::Parser(Handlers => {Start => \&tag_start, End => \&tag_end, Char => \&tag_char_data} ); $parser->parsefile($filename); # Handles the start of a tag. sub tag_start { # Use shift to pull off elements. my($obj) = shift; my($elem) = shift; my(%attrs) = @_; print "<$elem "; my(@keys) = keys( %attrs ); my($key); foreach $key (@keys) { print " $key=$attrs{$key} "; } print ">\n"; } # Handles the end of a tag. sub tag_end { # Use shift to pull off elements. my($obj) = shift; my($elem) = shift; print "\n"; } # Handles character data between the # start and end of a tag. sub tag_char_data { # Use shift to pull off elements. my($obj) = shift; my($data) = shift; # Note: no need for \n here in most documents. print "$data"; }