Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re: XML::Simple help

by murugu (Curate)
on Mar 08, 2005 at 06:23 UTC ( #437429=note: print w/replies, xml ) Need Help??

in reply to XML::Simple help

Here is my try with XML::Twig.

use XML::Twig; my $hash; my $t= XML::Twig->new( twig_handlers => { charge => sub{ $hash->{$_[1]->{'att'}-> +{'code'} }=$_[1]->{'att'}->{'name'}}, }, ); $t->parse( '<charge-type-control> <charge code="FRT" name="frtamt"/> <charge code="SV1" name="savamt"/> <charge code="SV2" name="savamt"/> <charge code="SV3" name="savamt"/> <charge code="SV4" name="savamt"/> <charge code="SV5" name="savamt"/> </charge-type-control>'); print $_."\t".$hash->{$_}."\n" for keys %{$hash};

Murugesan Kandasamy

Replies are listed 'Best First'.
Re^2: XML::Simple help
by mirod (Canon) on Mar 08, 2005 at 07:16 UTC

    A couple of comments:

    • in a handler you can use $_ as an alias for $_[1]
    • unless speed is a big concern, you should really use the proper methods to access attributes, and write $_->att( 'code') instead of $_->{'att'}->{'code'} and $_->set_att( code => $value) instead of $_->{'att'}->{'code'}= $value: there is no guaranty that the attributes will always be in a simple hash, nor than the methods only read or assign to the att hash (they do at the moment, but is very likely to change).

    With those changes, the handler code becomes:

    sub{    $hash->{$_->att('code')}=$_->att->( 'name'); }

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://437429]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (8)
As of 2017-05-24 02:55 GMT
Find Nodes?
    Voting Booth?