FreeKB - Perl XML::Simple printing keys (XMLin)
Perl - XML::Simple printing keys (XMLin)

Let's consider this XML.

<acme>
  <name role="main">Bugs Bunny</character>
</acme>

 

 

Data::Dumper can be used to understand how XML::Simple is interpreting the XML. Here is an example of how to use Data::Dumper.

#!/usr/bin/perl
use strict;
use warnings;
use XML::Simple;
use Data::Dumper;

my $xml= XMLin("example.xml");
print Dumper $xml;

 

Which will produce the following.

  • "name" is the root key
  • "content" and "id" are child keys below the root key
  • "Bugs Bunny" is a value of the "content" key
  • "1" is a value of the "id" key 
  • Data inside of { } is interepreted as a hash
$VAR1 = {
          'name' => {
                     'content' => 'Bugs Bunny',
                     'role' => 'main'
               }
        };

 

To loop through each root key:

foreach my $root_key (keys %{$xml}) {
  print "$root_key\n";
}

 

Which, in this example, will print "name".

name

 

To loop through each child key.

foreach my $root_key (keys %{$xml}) {
  print "root key = $root_key\n";
  foreach my $child_key (keys %{$xml->{$root_key}}) {
    print "child key = $child_key\n";
  }
}

 

Which, in this example, will print the following.

root key  = name
child key = content
child key = role

 

Or, if you already know the child key, you could do this.

foreach my $child_key (keys %{$xml->{'name'}}) {
  print "child key = $child_key\n";
}

 



Add a Comment




We will never share your name or email with anyone. Enter your email if you would like to be notified when we respond to your comment.




Please enter be586 in the box below so that we can be sure you are a human.




Comments

Web design by yours truely - me, myself, and I   |   jeremy.canfield@freekb.net   |