数码资讯
LUA读写xml
使用第三方库LuaXML操作xml 1、常用函数 xml.new(arg) 创建一个新的XML对象 xml.append(var,tag) 添加一个子节点 xml.load(filename) 加载XML文件 xml.save(var,filename) 保存XML文件 xml.eval(xmlst
使用第三方库LuaXML操作xml
1、常用函数
xml.new(arg)
创建一个新的XML对象
xml.append(var,tag)
添加一个子节点
xml.load(filename)
加载XML文件
xml.save(var,filename)
保存XML文件
xml.eval(xmlstring)
解析XML字符串
xml.tag(var, tag)
设置或返回一个XML对象
xml.str(var, indent, tag)
以字符串形式返回XML
xml.find(var, tag, attributeKey,attributeValue)
查找子节点
xml.registerCode(decoded,encoded)
设置文件编码类型
-- 导入依赖文件
require('LuaXml')
-- 加载XML文件
local xfile = xml.load("test.xml")
-- 查找子节点
local item = xfile:find("item")
-- 节点不为空
if item ~= nil then
-- 节点对应键值
print( item.id);
-- 修改键值
item.id = "abc";
print( item.id);
-- 第一个子节点
local field = item[1];
print( field);
print( field.name);
-- 获得子节点数量
print( table.getn( item));
end
-- 添加子节点
local xNewFile = xml.new("root");
-- 设置子节点键值
local child = xNewFile:append("child");
child.id = 1;
xNewFile:append("child").id = 2;
-- 添加text节点
xNewFile:append("text")[1] = 'test';
print( xNewFile);
-- 保存文件
xNewFile:save"t.xml";
保存的XML文件:
<?xml version="1.0"?>
<!-- file "t.xml", generated by LuaXML -->
<root>
<child />
<child />
<text>test</text>
</root>
2、写xml
require"LuaXml"
local lx = xml.new("root")
local ps = lx:append('person')
ps:append('sex')[1] = "男"
ps:append('age')[1] = '21'
ps:append('name')[1] = '张三'
local ps = lx:append('person')
ps:append('sex')[1] = "男"
ps:append('age')[1] = '21'
ps:append('name')[1] = '李四'
lx:save('person.xml')
保存的xml文件
<?xml version="1.0"?>
<!-- file "person.xml", generated by LuaXML -->
<root>
<person>
<sex>男</sex>
<age>21</age>
<name>张三</name>
</person>
<person>
<sex>男</sex>
<age>21</age>
<name>李四</name>
</person>
</root>
3、读xml
local lx = xml.load('person.xml')
for i,j in pairs(lx) do
print(j:find('name')[1],j:find('sex')[1],j:find('age')[1])
end
显示内容 张三 男 21 李四 男 21