slugger415 has asked for the wisdom of the Perl Monks concerning the following question:
Hi Perlers, I am still learning XML::Twig and have a question. I have a couple of event handlers set up thusly, parsing a list of filenames stored in @files:
foreach my $file (@files){ # set up the XML parser: my $twig= XML::Twig->new( twig_handlers => { topicref => \&topicref_processing, xref => \&topicref_processing }, ); $twig->parsefile($file); $twig->purge; }
And I have the handler set up something like this:
sub topicref_processing { my($twig, $topicref) = @_; my($atts) = $topicref->atts(); if($$atts{'keyref'}){ ### associate this keyref with $file } }
What I want to do is, if the handler finds a keyref attribute in the xref or topicref element, store that in a hash with the $file name as the key, something like $keyrefs{$file}{$$atts{'keyref'}} = 'keyref'.
What I can't figure out is, how to pass the name in $file to the event handler, or conversely, how to associate the found attribute back to the $file. I'm probably missing something obvious, but can't puzzle it out.
Any suggestions would be greatly appreciated.
Scott
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: XML::Twig newbie question
by Anonymous Monk on Sep 18, 2012 at 02:19 UTC | |
by Jenda (Abbot) on Sep 18, 2012 at 07:15 UTC | |
by Anonymous Monk on Sep 18, 2012 at 07:31 UTC | |
by Jenda (Abbot) on Sep 18, 2012 at 10:57 UTC | |
by slugger415 (Monk) on Sep 18, 2012 at 15:50 UTC | |
by Jenda (Abbot) on Sep 18, 2012 at 19:34 UTC | |
by slugger415 (Monk) on Sep 18, 2012 at 15:52 UTC | |
|
Re: XML::Twig newbie question
by remiah (Hermit) on Sep 18, 2012 at 15:03 UTC | |
by Anonymous Monk on Sep 18, 2012 at 20:02 UTC | |
by remiah (Hermit) on Sep 19, 2012 at 11:59 UTC |