lua-把table中的元素按照key的ascii码升序排序并组装成key-value的xml格式
2015-08-05 09:23
791 查看
跟外部的接口对接,很多接口都是http-xml的形式。
而且要求要把table中的元素按照key的ascii码升序排序后再组装成key-value的xml格式。
比如有一个table,tbl
tbl = {a=5,d=1,b=2,e=4,c=9}
需要组装成如下的xml
testsort.lua的代码如下
执行lua文件:lua testsort.lua
结果:<xml><a>5</a><b>2</b><c>9</c><d>1</d><e>4</e></xml>
排序成功
而且要求要把table中的元素按照key的ascii码升序排序后再组装成key-value的xml格式。
比如有一个table,tbl
tbl = {a=5,d=1,b=2,e=4,c=9}
需要组装成如下的xml
<xml> <a>5</a> <b>2</b> <c>9</c> <d>1</d> <e>4</e> </xml>
testsort.lua的代码如下
--打印table function printTab(tab) for i,v in pairs(tab) do print(i,v) end end --把table按照key的升序排列并转换成xml local function table2xml(to_xml) local sorted_tbl ={} --1,使用table本身的下标遍历取值,如to_xml[1] = "a=5" for i in pairs(to_xml) do --to_xml[i]的值插入到sorted_tbl中 table.insert(sorted_tbl,i) end --2,排序,当table是这种格式{1="a=5",2="d=1"},可以使用sort函数进行排序 table.sort(sorted_tbl) --3,接下来就是把sorted_tbl中的元素一个个组织成xml格式 local to_bank_msg = "<xml>" for i, v in pairs(sorted_tbl) do if v ~=nil and v ~="" then to_bank_msg = to_bank_msg .. "<" .. v .. ">" .. to_xml[v] .. "</" .. v ..">" end end to_bank_msg = to_bank_msg .. "</xml>" return to_bank_msg end function main() local tbl = {a=5,d=1,b=2,e=4,c=9} printTab(tbl) print("---------------") local xml_msg = table2xml(tbl) print(xml_msg) end main()
执行lua文件:lua testsort.lua
结果:<xml><a>5</a><b>2</b><c>9</c><d>1</d><e>4</e></xml>
排序成功
相关文章推荐
- XML 与 JSON 优劣对比
- As3.0 xml + Loader应用代码
- VBS脚本写的Windows硬件检测工具分享
- 用vbscript实现隐藏任务栏图标的脚本
- 用autoit编写第一个脚本(Hello World)
- 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day
- VBS调用WMI快速关闭IE的脚本
- ext读取两种结构的xml的代码
- 详解Lua中的表的概念及其相关操作方法
- Lua编程示例(二):面向对象、metatable对表进行扩展
- 收集的ROS防火墙脚本
- JSP脚本漏洞面面观
- 不错的批处理脚本 第一部分
- VBS脚本加密/解密VBS脚本(简易免杀版1.1)
- 不错的批处理脚本实例代码 第二部分
- 把Lua编译进nginx步骤方法
- 使用脚本和批处理清除电脑中的痕迹的代码第1/2页
- 让你的脚本说话