in reply to xml file reading and displaying
use strict; use XML::Twig; use subs qw(say); my $twig = XML::Twig->new( twig_handlers => { head => \&head, para => \¶, } )->parsefile("foo.xml"); exit; sub head { my ($t, $e) = @_; say '<h3>'.$e->text.'</h3>'; } sub para { my ($t, $e) = @_; process_children($t, $e); } sub list { my ($t, $e) = @_; say '<ol>'; process_children($t, $e); say '</ol>'; } sub item { my ($t, $e) = @_; say '<li>'.$e->text.'</li>'; } sub process_children { my ($t, $e) = @_; map { if ($_->is_text()) { say $_->text; } else { &{\&{$_->gi}}($t, $_) if exists &{$_->gi}; } } $e->children(); } sub say { return print 'TX ', @_, "\n"; }
|
|---|