Bob Showalter said: > 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 ""; } > > Two ways to do this: > > 1) use SuppressEmpty option. This will simply exclude the STREETNUM > element if it is empty (no attributes and no content)
Thanks. That works, and I don't even have to test it in my output. :) > 2) use ForceContent option. This will treat the STREETNUM element as a > hash even if it is empty or contains only text. In this case you would > use $x->{VEHICLE}{STREETNUM}{content} in your code. > > #2 would probably be safer, because it would handle attributes to > STREETNUM elements properly. I tried that an all I got was a bunch of trouble; the program seem to go into a forever loop. :( I'm just using the data from the file, no attributes, does that matter? > You can read more about these options in the XML::Simple documentation. Of course I did, it just doesn't make a lot of sense. :) -- Scott -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>