summaryrefslogtreecommitdiff
path: root/lib/Net
diff options
context:
space:
mode:
authorlevinse <levinse>2010-11-28 22:04:08 +0000
committerlevinse <levinse>2010-11-28 22:04:08 +0000
commit05d4021bdec9ebd786b71e839d233f2d29650702 (patch)
tree9ff6dc8420a6635ba4bf896df80df35f99593eb9 /lib/Net
parent81afca64157ecbca5ef6bee0a5310ac733200a7c (diff)
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
Diffstat (limited to 'lib/Net')
-rw-r--r--lib/Net/Ikano.pm2
-rw-r--r--lib/Net/Ikano/XMLUtil.pm3
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