Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: Parsing XML into a simple hash

by mirod (Canon)
on Jun 21, 2001 at 16:00 UTC ( #90334=note: print w/replies, xml ) Need Help??

in reply to Pasring XML into a simple hash

And here is the ObXTW (the Obligatory XML::Twig Way), once you've fixed your XML by wrapping everything into a single element:

#!/bin/perl -w use strict; use XML::Twig; my $t= new XML::Twig( twig_handlers => { post => \&post }); $t->parse( \*DATA); sub post { my( $t, $post)= @_; # all handlers get called with those arguments # here is the magic! # gi is the element name and text is its... text! my %hash= map { $_->gi, $_->text} $post->children; # or whatever you want to do with the hash print "City: $hash{location} \n"; # if your file is small enough you don't need to purge, otherwise # it will free the memory used so far $t->purge; } __DATA__ <posts> <post> <jobnumber>1234</jobnumber> <location> somecity NJ </location> </post> <post> <jobnumber>87922</jobnumber> <location> Othercity, AK </location> </post> </posts>

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (6)
As of 2023-02-06 12:24 GMT
Find Nodes?
    Voting Booth?
    I prefer not to run the latest version of Perl because:

    Results (34 votes). Check out past polls.