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 ...'
|
---|