Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

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

Comment on Re: XML::Simple help
Download Code
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 the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (4)
As of 2015-11-27 23:16 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (734 votes), past polls