LuaXML使用Lua解析XML

我正在尝试使用[LuaXML](http://viremo.eludi.net/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): ?

我不明白出了什么问题,怎么才能正确地做到这一点?

点赞
用户107090
用户107090

你使用的 require 这种惯用方法是推荐在 Lua 5.2 中使用的。虽然这种惯用方法对于 Lua 5.1 也是可行的,但是大多数(但不是全部)针对 Lua 5.1 的库通常定义全局变量并且不通过 require 返回它们定义的值。在 luaopen_xxx 函数没有返回值的情况下,require 返回 true,因此你看到了错误信息。

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

2013-08-13 23:40:12