From 55c1fccd239563be02013509f793685726d8bc6e Mon Sep 17 00:00:00 2001 From: spag Date: Fri, 11 Jan 2013 15:57:34 +0100 Subject: simple xml builder class added --- .../scripts/configuration/simple_xml.lua | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 misc/freeswitch/scripts/configuration/simple_xml.lua (limited to 'misc/freeswitch/scripts/configuration') diff --git a/misc/freeswitch/scripts/configuration/simple_xml.lua b/misc/freeswitch/scripts/configuration/simple_xml.lua new file mode 100644 index 0000000..f04dd1e --- /dev/null +++ b/misc/freeswitch/scripts/configuration/simple_xml.lua @@ -0,0 +1,50 @@ +-- Gemeinschaft 5 simple xml gererator class +-- (c) AMOOMA GmbH 2013 +-- + +module(...,package.seeall) + +SimpleXml = {} + +-- Create SimpleXml object +function SimpleXml.new(self, arg) + arg = arg or {} + object = arg.object or {} + setmetatable(object, self); + self.__index = self; + self.class = 'simplexml'; + return object; +end + +function SimpleXml.element(self, arg) + local xml_tag = '<' .. tostring(arg[1]); + for key, value in pairs(arg) do + if type(key) == 'string' then + xml_tag = xml_tag .. ' ' .. tostring(key) .. '="' .. tostring(value) .. '"'; + end + end + xml_tag = xml_tag .. '>'; + + for key=2, #arg do + xml_tag = xml_tag .. '\n' .. tostring(arg[key]) .. '\n'; + end + + return xml_tag .. ''; +end + + +function SimpleXml.from_hash(self, element_name, parameter_hash, key_name, value_name) + local params_xml = ''; + for key, value in pairs(parameter_hash) do + local arguments = { [1] = element_name }; + if key_name and value_name then + arguments[key_name] = key; + arguments[value_name] = value; + else + arguments[key] = value; + end + params_xml = params_xml .. tostring(self:element(arguments)) .. '\n'; + end + + return params_xml; +end -- cgit v1.2.3