in reply to XML: Simple - nested XML data


Execute the below code, you will get the 2nd minor item item value. See if you see the $output reference you can see the entire data structure output for the corresponding xml. From the data structure you can get whatever it necessary. Basically, ForceArray will each and every tag in array format based on the hirearchy. If you create this xml in xml file and if we see the '+' symbol hirearchy in the same format it will parse as a array and it will display.

#!/usr/local/bin/perl use strict; use warnings; use XML::Simple; my $xml = qq{<SuperItem> <UserID>1234</UserID> <MajorItems> <MinorItem> <Item>Box</Item> </MinorItem> </MajorItems> <MajorItems> <MinorItem> <Item>Suitcase</Item> </MinorItem> </MajorItems> </SuperItem>}; use XML::Simple qw/:strict/; use Data::Dumper; my $xml_simple = XML::Simple->new(KeyAttr => 1, KeepRoot => 1, ForceAr +ray => 1); my $output = $xml_simple->XMLin($xml); print "\nEntire xml..", Dumper($output); print "\n2nd Minor item..", $output->{'SuperItem'}[0]{'MajorItems'}[1] +{'MinorItem'}[0]{'Item'}[0];