troubleshooting Question

Using Perl and XML::Simple to parse XML file

Avatar of michaelshavel
michaelshavel asked on
3 Comments1 Solution3133 ViewsLast Modified:
I am trying to parse and XML file from The file they send is pretty complicated so I wanted to first try a simpler file -- I tried the example given in the docs for XML::Simple. I can't get the example to print out individual element data
 I've included the perl code and the XML file.

If I print the "Dumper ($config)" out I get the data.

If I try and print an individual element out though with either of the lines below, I just get a "use of uninitialized value" message. I've tried every combination I can think of to print out individual element data out but I just can't get the sytax correct. Thanks for your help and suggestions.  
print $config->{logdir};
print $config->{server}->{kalahari}->{address}->[1];

Possibly XML::Simple isn't what I need. Any other ideas?

#!/usr/bin/perl -w
#Used to get weather data from 
use LWP::Simple;
use XML::Simple qw(:strict);
use Data::Dumper;
my $weatherdata = get($url);
my $xs = XML::Simple->new(ForceArray => 1, KeepRoot => 1, KeyAttr=>[]);
my $config = $xs->XMLin($weatherdata);
#print Dumper($config);  #Printing this out works fine. 
print $config->{logdir};
print $config->{server}->{kalahari}->{address}->[1];
<config logdir="/var/log/foo/" debugfile="/tmp/foo.debug">
    <server name="sahara" osname="solaris" osversion="2.6">
    <server name="gobi" osname="irix" osversion="6.5">
    <server name="kalahari" osname="linux" osversion="2.0.34">
Join the community to see this answer!
Join our exclusive community to see this answer & millions of others.
Unlock 1 Answer and 3 Comments.
Join the Community
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 3 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros