On 1/15/2010 2:11 PM, Grant wrote:
Anybody here familiar with XML::Simple?  I need to parse some XML that
looks like this:

<LabelResponse>
<Label>
<Image Number="1">base64datahere</Image>
<Image Number="2">base64datahere</Image>
<Image Number="3">base64datahere</Image>
</Label>
</LabelResponse>

I need to be able to grab the correct set of base64 data.  Does anyone
know how to do that?

- Grant

The "correct set"?  Only you can know that.  :-)

We like to say, "XML::Simple is simple if your XML is simple."

Yours is, so

     1  #!/usr/local/bin/perl
     2
     3  use warnings;
     4  use strict;
     5  use XML::Simple;
     6  use Data::Dumper;
     7  $Data::Dumper::Terse = 1;
     8  $Data::Dumper::Indent = 1;
     9
    10  my $xml = <<'__';
    11  <LabelResponse>
    12  <Label>
    13  <Image Number="1">base64datahere</Image>
    14  <Image Number="2">base64datahere</Image>
    15  <Image Number="3">base64datahere</Image>
    16  </Label>
    17  </LabelResponse>
    18  __
    19
    20  my $doc = XMLin( $xml );
    21
    22  print Dumper $doc;
    23
    24  print "----\n";
    25  for my $image ( @{$doc->{'Label'}{'Image'}} ) {
    26      print $image->{'content'}."\n";
    27  }
    28
    29  print "----\n";
    30  my $correct_one = 2;
    31  for my $image ( @{$doc->{'Label'}{'Image'}} ) {
    32      if( $image->{'Number'} == $correct_one ) {
    33          print "The correct one is: $image->{'content'}\n";
    34      }
    35  }
    36
    37  __END__
    38  {
    39    'Label' => {
    40      'Image' => [
    41        {
    42          'Number' => '1',
    43          'content' => 'base64datahere'
    44        },
    45        {
    46          'Number' => '2',
    47          'content' => 'base64datahere'
    48        },
    49        {
    50          'Number' => '3',
    51          'content' => 'base64datahere'
    52        }
    53      ]
    54    }
    55  }
    56  ----
    57  base64datahere
    58  base64datahere
    59  base64datahere
    60  ----
    61  The correct one is: base64datahere

--
Brad

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to