On 3 Nov 2005 at 7:45, Scott Taylor wrote:
> 
> Hi All,
> 
> I'm using XML::Simple to parse a very simple XML file and dump the data
> into hashes of hashes.
> 
> The problem I'm getting, is sometimes information is blank in the XMl
> file; it looks like this:
> <STREETNUM/>
> instead of
> <STREETNUM>1234</STREETNUM>
> 
> and when I print the hash:
> 
> print "$x->{VEHICLE}->{STREETNUM} ";
> 
> it returns: "HASH(blahblah)";
> 
> How do I test for this so it prints blank?  I've tried many things, the
> most logical I could think of was:
> 
> if ($x->{VEHICLE}->{STREETNUM}){ print ... }
> else { print ""; }
> 
> but even that doesn't work.
> 
> Cheers.
> 

Not sure if I am qualified enough to answer this but I have had a bit 
of experience with XML::Simple. I would recommend using 
my $x = XMLin($fh, ForceArray => 1); 

if your not already as it helps generally. 

For the definedness of the data I guess 

my $foo = $x->{VEHICLE}->{STREETNUM}[n] # need n now that forcearray 
is on.
print if (defined($foo));

I would also say that the source file is wrong, it should read
<STREETNUM></STREETNUM>

HTH.
Dp.



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to