When an array has a unique element, xmltodict does not
parse it as an array, but a single object. This causes
a problem in the diameter xml conversion because the
library for reverse conversion [0] won't follow the
diameter message dtd template.
Fortunately, xmltodict supports [1] force array for specific
node name, so we will force this for 'avp' which is the
one affected.
[0] https://github.com/testillano/json2xml
[1] https://stackoverflow.com/questions/
37207353/xmltodict-does-not-return-a-list-for-one-element
# force the value just in case xmltodict implementation
# changes. The anna::core::functions::json2xml helper,
# assumes this prefix in order to work properly.
-result=xmltodict.parse(xml, attr_prefix='@')
+result=xmltodict.parse(xml, force_list={'avp'}, attr_prefix='@')
if parent:
result = { parent: result }