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/