From 05d4021bdec9ebd786b71e839d233f2d29650702 Mon Sep 17 00:00:00 2001 From: levinse Date: Sun, 28 Nov 2010 22:04:08 +0000 Subject: [PATCH] make the XML to hash stuff produce an empty string for empty elements instead of suppressing them - much easier to test for empty values than to test for no specific keys in a hash --- lib/Net/Ikano.pm | 2 ++ lib/Net/Ikano/XMLUtil.pm | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/Net/Ikano.pm b/lib/Net/Ikano.pm index de40912..c1e4b87 100644 --- a/lib/Net/Ikano.pm +++ b/lib/Net/Ikano.pm @@ -321,6 +321,8 @@ sub AUTOLOAD { return "invalid HTTP response from Ikano: " . $resp->status_line unless $resp->is_success; my $respxml = $resp->decoded_content; + + $xs = new Net::Ikano::XMLUtil(RootName => undef, SuppressEmpty => ''); my $resphash = $xs->XMLin($respxml); warn "DEBUG RESPONSE\n\tHASH:\n ".Dumper($resphash)."\n\tXML:\n $respxml" diff --git a/lib/Net/Ikano/XMLUtil.pm b/lib/Net/Ikano/XMLUtil.pm index 0439a57..62f3a71 100644 --- a/lib/Net/Ikano/XMLUtil.pm +++ b/lib/Net/Ikano/XMLUtil.pm @@ -11,8 +11,7 @@ use Switch; Unfortunately the Ikano API schema has xs:sequence everywhere, so we need to have most elements in a particular order. This class solves this problem by extending XML::Simple and overriding sorted_keys to provide the element order for each request. -IMPORTANT: when using this class, XMLOut must have SuppressEmpty => 1 as an option. -You will break everything otherwise. +This is a helper class which should not be used directly. It requires particular options in the constructor (SuppressEmpty) which differ for XMLin and XMLout. =cut -- 2.11.0