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:上面的代码比较简单易懂,不过健壮性不好
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐