1、下载LuaXml
链接: https://pan.baidu.com/s/1RfQ3aI9yJUJzbu8x5gPCSg 提取码: 2kbx
2、安装LuaXml
修改Makefile文件,主要修改红色字体部份
# 2009-03-16 by gf # generic compiler and linker settings: CC = gcc INCDIR = -I/usr/local/openresty/luajit/include/luajit-2.1 LIB = LIBDIR = -L. -L/usr/local/openresty/luajit/lib CFLAGS = -Os -Wall -c #-g # generic platform specific rules: ARCH = $(shell uname -s) ifeq ($(ARCH),Linux) CFLAGS += -fPIC LFLAGS = -fPIC -shared LIBS = $(LIBDIR) $(LIB) -lluajit-5.1 -ldl EXESUFFIX = SHLIBSUFFIX = .so else ifeq ($(ARCH),Darwin) # MacOSX LFLAGS = -bundle LIBS = $(LIBDIR) -L/usr/local/lib $(LIB) -llua EXESUFFIX = .app SHLIBSUFFIX = .so else # windows, MinGW LFLAGS = -shared LIBS = $(LIBDIR) $(LIB) -llua51 -mconsole -s EXESUFFIX = .exe SHLIBSUFFIX = .dll endif endif
进行编译
make
将LuaXML.lua和LuaXML_lib.so文件拷贝到/usr/local/openresty/lualib/目录下
已编译完成的下载地址
链接: https://pan.baidu.com/s/169utORt8moro4lNSd7cPCw 提取码: 75us
3、使用LuaXml
xml内容
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'> <cas:authenticationSuccess> <cas:user>zhangsan</cas:user> <cas:attributes> <cas:BUREAU_ID>2002617</cas:BUREAU_ID> <cas:REAL_NAME>张三</cas:REAL_NAME> <cas:PERSON_ID>56588</cas:PERSON_ID> </cas:attributes> </cas:authenticationSuccess> </cas:serviceResponse>
lua代码
require('LuaXML') xml = require "xml" local resp = xml.eval(tostring(xmlStr)) local login_name = resp:find("cas:user")[1] local bureau_id = resp:find("cas:BUREAU_ID")[1] local person_id = resp:find("cas:PERSON_ID")[1] ngx.log(ngx.ERR,"login_name:"..login_name..";bureau_id:"..bureau_id..";person_id:"..person_id)