利用lua脚本轻松读写xml元素的值

lua是一种非常小巧的脚本工具。

但是,他的字符串操作功能却非常强大。

鉴于此,用他来操作xml文件,还是挺方便的。

下面就来演示一下具体如何实现。


一、从xml文件中获取指定元素的值。

将下面的内容保存为一个文件,例如:get_xml_element.lua,并赋予可执行权限。

然后执行如下命令,即可获取指定xml文件中指定元素的值

 ./get_xml_element.lua  /path/to/xml_file_name.xml  element_name


好了,下面就是这个简单的lua脚本的内容。


#!/usr/bin/lua


xml_file=arg[1]    --arg[1]是第1个命令行参数,用于指定xml文件的路径

element=arg[2]   --arg[2]是第2个命令行参数,用于指定xml元素名称


head="<"..element..">"    --根据元素名生成起始tag,即<element_name>
tail="</"..element..">"   --根据元素名生成关闭tag,即</element_name>


file = io.open(xml_file, "r");  --打开xml文件
data = file:read("*all");     --读取文件的全部内容到data变量中
file:close();                 --关闭xml文件


--获取起始tag与关闭tag之间的内容到value中
_,_,value=string.find(data, head.."(.-)"..tail)


--输出value的值到标准输出

print(value)


二、修改xml文件中指定元素的值。

直接上脚本了。


#!/usr/bin/lua


xml_file=arg[1]  --arg[1]用于指定xml文件的路径
element=arg[2]   --arg[2]用于指定xml元素名称
new_value=arg[3] --arg[3]用于指定xml元素的新值


head="<"..element..">"    --根据元素名生成起始tag,即<element_name>
tail="</"..element..">"   --根据元素名生成关闭tag,即</element_name>




file = io.open(xml_file, "r"); --打开xml文件
data = file:read("*all");      --读取文件的全部内容到data变量中
file:close();                  --关闭xml文件


--将element之前的内容,element的值,element之后的内容,分别保存在pre,old_value,follow中
_,_,pre,old_value,follow=string.find(data, "(.*)("..head..".-"..tail..")(.*)")


file = io.open(xml_file, "w");      --打开xml文件
file:write(pre..head..new_value..tail..follow); --拼装出新的文件内容,并写入
file:close();                       --关闭xml文件


  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值