如何在Lua中解析xml文件?

有一个简单的xml文件,我想使用Lua解析。我应该使用哪个Lua xml库?我尝试过Lubyk的xml库,但它对我无效。

这是我的操作步骤: $ sudo luarocks install xml

尝试导入模块: require("xml")

结果是:

error loading module 'xml.core' from file '/usr/lib/lua/5.3/xml/core.so':
    /usr/lib/lua/5.3/xml/core.so: undefined symbol: lua_tonumber
lua: /usr/share/lua/5.3/xml/init.lua:31: attempt to call a nil value (field 'Parser')
stack traceback:
    /usr/share/lua/5.3/xml/init.lua:31: in main chunk
    [C]: in function 'require'
    lua_doc_reader.lua:3: in main chunk
    [C]: in ?

那么,在Lua中最常用的xml阅读库是什么?

点赞
用户1984680
用户1984680

好的,在尝试了各种不同的 XML 库之后,对我有效的是 xmlreader

$ sudo luarocks install lua-xmlreader

然后,根据 xmlreader 文档:

require('xmlreader')

fhandle = io.open("temp.xml", 'r')
data = fhandle:read("*a")

local r = assert(xmlreader.from_string(data))
while (r:read()) do
  local leadingws = ('    '):rep(r:depth())
  if (r:node_type() == 'element') then
    io.write(('%s%s:'):format(leadingws, r:name()))
    while (r:move_to_next_attribute()) do
      io.write((' %s=%q'):format(r:name(), r:value()))
    end
    io.write('\n')
  end
end

以上代码会打印出文档的 XML 结构。

2016-11-16 15:12:32