local function table_to_xml_table(old_table,new_table)
for key,value in pairs(old_table) do
if "table" == type(value) then
table.insert(new_table,"<")
table.insert(new_table,key)
table.insert(new_table,">")
table_to_xml_table(value,new_table)
table.insert(new_table,"</")
table.insert(new_table,key)
table.insert(new_table,">")
else
table.insert(new_table,"<")
table.insert(new_table,key)
table.insert(new_table,">")
table.insert(new_table,value)
table.insert(new_table,"</")
table.insert(new_table,key)
table.insert(new_table,">")
end
end
end
--table转成xml字符串
local function table_to_xml_string(version,charset,_table)
local new_table = {}
table_to_xml_table(_table,new_table)
table.insert(new_table,1,'<?xml version="' .. version .. '" encoding="' .. charset .. '" ?>')
return table.concat(new_table)
end
用例:
local t = {
["response"] = {
["error_code"] = 0,
["error_msg"] = "success!"
}
}
print(table_to_xml_string("1.0","utf-8",t))
PS:上面的代码比较简单易懂,不过健壮性不好