Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: xml file reading and displaying

by bsdz (Friar)
on Mar 26, 2007 at 13:11 UTC ( [id://606572]=note: print w/replies, xml ) Need Help??


in reply to xml file reading and displaying

I would go for the twig_handlers approach. Here is something I knocked together very quickly. Note you have a missing '</list>' closing element in your XML. It doesn't produce quite the same output but I am sure you can tailor it for your own purposes.
use strict; use XML::Twig; use subs qw(say); my $twig = XML::Twig->new( twig_handlers => { head => \&head, para => \&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"; }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://606572]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2024-04-19 14:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found