1、openresty安装LuaXML库
下载地址:https://github.com/LuaDist/luaxml
修改Makefile文件
INCDIR = -I/usr/local/openresty/luajit/include/luajit-2.1
LIBDIR = -L. -L/usr/local/openresty/luajit/lib
LIBS = $(LIBDIR) $(LIB) -lluajit-5.1 -ldl
LIBS = $(LIBDIR) -L/usr/local/lib $(LIB) -lluajit-5.1
LIBS = $(LIBDIR) $(LIB) -llua51 -mconsole -s
执行make
得到LuaXML_lib.so文件,将LuaXML_lib.so以及LuaXML.lua拷贝到openresty的/usr/local/openresty/lualib下
2、lua解析xml文件
(1)xml文件大致格式(省略前后的内容):
......
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="ThreadGroup" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp testclass="LoopController" elementType="LoopController" guiclass="LoopControlPanel" enabled="true" testname="LoopControlPanel"
name="ThreadGroup.main_controller">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">10</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">10</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration" />
<stringProp name="ThreadGroup.delay" />
</ThreadGroup>
......
(3)lua代码
require("LuaXML")
local jmx = xml.load("/usr/local/openresty/lua/jmeter.jmx") --加载xml文件
local loops_jmx = jmx:find("stringProp", "name", "LoopController.loops") --查找标签为stringProp,包含属性name为LoopController.loops的内容
loops_jmx[1] = 20 --loops_jmx[1]即是<stringProp name="LoopController.loops">10</stringProp>中的value:10,这里表示将value设置为20
jmx:save("/usr/local/openresty/lua/jmeter_new.jmx") --将内容改为20后重新保存到新的文件jmeter_new.jmx中
lua解析xml文件
最新推荐文章于 2024-09-08 09:27:14 发布
本文介绍了如何在OpenResty环境中安装LuaXML库并使用它来解析XML文件。首先,通过下载LuaXML,修改Makefile并执行make生成LuaXML_lib.so和LuaXML.lua文件,然后将它们复制到OpenResty的lualib目录下。接着展示了一个XML文件的部分内容,并演示了用Lua代码加载XML文件,查找特定节点(如'LoopController.loops'),修改其值(从10更改为20),最后保存修改后的XML文件到新路径。
1026

被折叠的 条评论
为什么被折叠?



