Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: XML::Simple design decisions

by Jenda (Abbot)
on Dec 29, 2007 at 00:53 UTC ( #659429=note: print w/ replies, xml ) Need Help??


in reply to Re: XML::Simple design decisions
in thread XML::Simple

You could also use XML::Rules instead of XML::Simple as it gives you more detailed control over what data structure gets generated.

Something like:

use XML::Rules; # at least 0.22 (for the stripspaces) # see http://www.perlmonks.org/?node_id=658971 my $parser = XML::Rules->new( rules => [ Text => 'content', Entry => 'as array', Report => 'pass', Other => sub {return delete($_[1]->{name}) => $_[1]}, ], stripspaces => 3, ); my $data = $parser->parse(\*DATA); use Data::Dumper; print Dumper($data); __DATA__ <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <Report address="Address" name="IM Report" productID="INTRFC-MGR01"> <Entry detail="4" name="e_im_dev_io_entry"> <Text>Device Handle: 2</Text> </Entry> <Entry detail="4" name="e_im_dev_io_entry"> <Text>Device Handle: 5</Text> </Entry> <Other detail="4" name="first"> <Text>Device Handle: 5</Text> </Other> <Other detail="4" name="second"> <Text>Device Handle: 5</Text> </Other> </Report>

It doesn't try to guess as XML::Simple does so it's more work though. (In not yet released 0.23 the rule for the Other tag will be just Other => 'by name',.)


Comment on Re^2: XML::Simple design decisions
Select or Download Code
Re^3: XML::Simple design decisions
by alw (Sexton) on Dec 29, 2007 at 03:33 UTC
    Thanks Jenda, that module works very well for me. One more point I would like to make. With XML::Simple and my xml file that I am working with, I can't use ForceArray => 'Entry' either for some reason; it hangs the script. I do not have that problem with XML::Rules.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (16)
As of 2014-10-23 16:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (125 votes), past polls