Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re: Re: easy way of parsing XML

by grantm (Parson)
on Jun 30, 2002 at 08:39 UTC ( #178336=note: print w/replies, xml ) Need Help??

in reply to Re: easy way of parsing XML
in thread easy way of parsing XML

XML::Simple tries to provide a simple interface but it does assume a knowledge of Perl references. I recommend perlreftut.

The most common mistake with XML::Simple is to ignore the advice in the docs about the ForceArray and KeyAttr options. Always set ForceArray => 1 if you're not sure, and setting it to an array of element names is probably the best way.

I also recommend setting KeyAttr => [] unless you know what you want. In the case of the original XML snippet, KeyAttr =>  'DlrItemNum' might be useful.

I suspect the line that says if ( ref $thing eq "SCALER" ); will never get executed.

If you're processing big XML files, XML::SAX might be a good answer. XML::SAX::ByRecord from Barrie Slaymaker's XML::SAX::Machines could be very handy once you have your head around SAX.

But, XML::Twig is possibly the best answer for simple record oriented processing.

Edit: Sorry, I typed 'always set ForceArray => 0 ...' when I meant 'ForceArray => 1 ...'

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (1)
As of 2021-07-31 05:58 GMT
Find Nodes?
    Voting Booth?

    No recent polls found