2

我正在尝试使用LuaXML解析 XML 文件

function customURLtoSteam64(web, sid)
local xml = require("luaXml")
local xfile = xml.load("http://steamcommunity.com/id/GreenMarineValve?xml=1") --line189
local xscene = xfile:find("steamID64[1]") 
return render_front(web, xscene)
end

但我得到这个错误:

.\index.lua:189: attempt to index local 'xml' (a boolean value)
stack traceback:
.\index.lua:189: in function <.\index.lua:186>
(tail call): ?
(tail call): ?.\index.lua:189: attempt to index local 'xml' (a boolean value)
stack traceback:
c:\Lua\LuaRocks/share/lua/5.1/coxpcall.lua:24: in function 
(tail call): ?
(tail call): ?
c:\Lua\LuaRocks/share/lua/5.1/orbit.lua:540: in function 
(tail call): ?
(tail call): ?

我不明白出了什么问题,我该如何正确地做到这一点?

4

1 回答 1

3

您使用的require惯用语是推荐用于 Lua 5.2 的惯用语。尽管该习惯用法也适用于 Lua 5.1,但 Lua 5.1 的大多数(但不是全部)库通常定义全局变量,并且不返回它们通过require. 在没有luaopen_xxx函数返回值的情况下,require返回 true,因此您会看到错误消息。

因此,只需简单地使用require("luaXml"),不要将其分配给本地。

于 2013-08-13T23:40:12.513 回答