Re: XML and representations

2010-01-30 Thread Rob Dixon

Hello Bruce

Take a closer look at the docs, and try

  my $xml = XMLin($data, SuppressEmpty = undef);

HTH,

Rob


Bruce Ferrell wrote:


I have a wee problem I can seem to solve. I don't want to get into
should XML::Simple be used, it's not relevant to my question... I don't
think.  Below is some very simple XML and below that the output after
passing it through Dumper.

As you can see phone2 is a blank tag (no contents) and it has the oddest
representation in the Dumper output.  How do I detect that?

  my $xml= XMLin ($data, ForceArray = 0)

For non-blank tags phone1/phone1  / $xml-{message}-{phone1}  works
fine.  for a blank tag, I get other less interesting data.

Suggestions?



event
typeADD/type
message
msgtypePHONE/msgtype
phone115105551212/phone1
phone2/phone2
wavYES/wav
custIDdigits/custID
statusALERT/status
/message
/event


 $VAR1 = {
   'type' = 'ADD',
   'message' = {
 'status' = 'ALERT',
 'phone1' = '15105551212',
 'custID' = 'digits',
 'phone2' = {},
 'wav' = 'YES',
 'msgtype' = 'PHONE'
   }
 };



--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: XML and representations

2010-01-30 Thread Bruce Ferrell
Thanks Rob,

I'm glad you validated the solution I found.  I figured out that if the
empty tag was suppressed, I could test for the tag being present or not.

Bruce


On 01/30/2010 04:16 AM, Rob Dixon wrote:
 Hello Bruce

 Take a closer look at the docs, and try

   my $xml = XMLin($data, SuppressEmpty = undef);

 HTH,

 Rob


 Bruce Ferrell wrote:

 I have a wee problem I can seem to solve. I don't want to get into
 should XML::Simple be used, it's not relevant to my question... I don't
 think.  Below is some very simple XML and below that the output after
 passing it through Dumper.

 As you can see phone2 is a blank tag (no contents) and it has the oddest
 representation in the Dumper output.  How do I detect that?

   my $xml= XMLin ($data, ForceArray = 0)

 For non-blank tags phone1/phone1  / $xml-{message}-{phone1}  works
 fine.  for a blank tag, I get other less interesting data.

 Suggestions?



 event
 typeADD/type
 message
 msgtypePHONE/msgtype
 phone115105551212/phone1
 phone2/phone2
 wavYES/wav
 custIDdigits/custID
 statusALERT/status
 /message
 /event


  $VAR1 = {
'type' = 'ADD',
'message' = {
  'status' = 'ALERT',
  'phone1' = '15105551212',
  'custID' = 'digits',
  'phone2' = {},
  'wav' = 'YES',
  'msgtype' = 'PHONE'
}
  };




-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: XML and representations

2010-01-30 Thread Rob Dixon
You misunderstand my solution Bruce. If you set the options as I 
described, you will have a hash element that looks like


  'phone2' = undef

instead of the awkward

  'phone2' = {}

This would be my preference instead of suppressing the empty element 
altogether, which leaves no indication at all that the element was present.


Another reason not to use XML::Simple ;)

HTH,

Rob


Bruce Ferrell wrote:

Thanks Rob,

I'm glad you validated the solution I found.  I figured out that if the
empty tag was suppressed, I could test for the tag being present or not.

Bruce


On 01/30/2010 04:16 AM, Rob Dixon wrote:

Hello Bruce

Take a closer look at the docs, and try

  my $xml = XMLin($data, SuppressEmpty = undef);

HTH,

Rob



--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




XML and representations

2010-01-29 Thread Bruce Ferrell
Perl monks,

I have a wee problem I can seem to solve. I don't want to get into
should XML::Simple be used, it's not relevant to my question... I don't
think.  Below is some very simple XML and below that the output after
passing it through Dumper.

As you can see phone2 is a blank tag (no contents) and it has the oddest
representation in the Dumper output.  How do I detect that?

  my $xml= XMLin ($data, ForceArray = 0)

For non-blank tags phone1/phone1  / $xml-{message}-{phone1}  works
fine.  for a blank tag, I get other less interesting data.

Suggestions?



event
typeADD/type
message
msgtypePHONE/msgtype
phone115105551212/phone1
phone2/phone2
wavYES/wav
custIDdigits/custID
statusALERT/status
/message
/event


 $VAR1 = {
 'type' = 'ADD',
   'message' = {
  'status' = 'ALERT',
  'phone1' = '15105551212',
  'custID' = 'digits',
  'phone2' = {},
  'wav' = 'YES',
  'msgtype' = 'PHONE'
}
 };



-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/




Re: XML and representations

2010-01-29 Thread Jim Gibson
On 1/29/10 Fri  Jan 29, 2010  1:34 PM, Bruce Ferrell
bferr...@baywinds.org scribbled:

 Perl monks,
 
 I have a wee problem I can seem to solve. I don't want to get into
 should XML::Simple be used, it's not relevant to my question... I don't
 think.  Below is some very simple XML and below that the output after
 passing it through Dumper.
 
 As you can see phone2 is a blank tag (no contents) and it has the oddest
 representation in the Dumper output.  How do I detect that?

It's a reference to an empty hash -- not that odd, considering that nested
tags in the XML generate nested hashes in the XML tree. I guess an undef
value would be better.

Use the ref function to see if the value is a reference to a hash. If it is,
get the number of keys (scalar keys %{$xml{message}-{phone2}}) and see if
there are zero elements.

 
   my $xml= XMLin ($data, ForceArray = 0)
 
 For non-blank tags phone1/phone1  / $xml-{message}-{phone1}  works
 fine.  for a blank tag, I get other less interesting data.
 
 Suggestions?
 
 
 
 event
 typeADD/type
 message
 msgtypePHONE/msgtype
 phone115105551212/phone1
 phone2/phone2
 wavYES/wav
 custIDdigits/custID
 statusALERT/status
 /message
 /event
 
 
  $VAR1 = {
  'type' = 'ADD',
'message' = {
   'status' = 'ALERT',
   'phone1' = '15105551212',
   'custID' = 'digits',
   'phone2' = {},
   'wav' = 'YES',
   'msgtype' = 'PHONE'
 }
  };
 
 



-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/