Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re^2: XML::Simple parsing help

by bitingduck (Chaplain)
on Dec 09, 2012 at 08:15 UTC ( #1007961=note: print w/replies, xml ) Need Help??

in reply to Re: XML::Simple parsing help
in thread XML::Simple parsing help

Alternatively, using XML::TreeBuilder:

use strict; use warnings; use XML::TreeBuilder; my $xml = <<'END'; <inventors type="array"> <inventor> <city>Aston Clinton</city> <name>Andy Barth</name> <number type="integer">1</number> <country>GB</country> <upper-name>ANDY BARTH</upper-name> </inventor> <inventor> <city>Aylesbury</city> <name>Daniele Dall'Acqua</name> <number type="integer">2</number> <country>GB</country> <upper-name>DANIELE DALL'ACQUA</upper-name> </inventor> <inventor> <city>Calne</city> <name>Nigel Drew</name> <number type="integer">3</number> <country>GB</country> <upper-name>NIGEL DREW</upper-name> </inventor> </inventors> END my $tree=XML::TreeBuilder->new(); $tree->parse($xml); my @inventornums=$tree->find_by_tag_name('number'); foreach my $inventornum(@inventornums){ if ($inventornum->as_text()==2){ my $parent=$inventornum->parent(); print $parent->as_XML; } }

Replies are listed 'Best First'.
Re^3: XML::Simple parsing help
by Kenosis (Priest) on Dec 09, 2012 at 08:24 UTC

      I always find XML::Simple to be so simple that it seems like extra work to back the structure out once it's parsed into a hash. XML::TreeBuilder is easier to wrap my head around with the descriptive method names, but still simpler than using XML::LibXML

Re^3: XML::Simple parsing help
by jhoop (Acolyte) on Dec 09, 2012 at 16:43 UTC

    This is a very nice and simple solution.. I'm going to play with this and XML::Rules as suggested by Jenda, see which will work best with my application.. Thanks very much!

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (3)
As of 2018-07-22 15:02 GMT
Find Nodes?
    Voting Booth?
    It has been suggested to rename Perl 6 in order to boost its marketing potential. Which name would you prefer?

    Results (454 votes). Check out past polls.