我正在尝试从 XML 文件中解析数据,例如
<level>
<bg>details1</bg>
<bg>details2</bg>
</level>
使用 xml.find(bg)我只能获取详细信息 1。这是因为 xml.find 返回与搜索条件匹配的第一个(子)表或 nil。
如果我想把两个 bg 都读出来。如何在 LuaXML 中实现它?或者请介绍其他 Lua XML 库作品。
插件我的真实场景是这样的
<a>
<b>
<level>
<bg>details1</bg>
</level>
<level>
<bg>details2</bg>
</level>
</b>
</a>
我知道我需要取出整个 b 对象并使用 xml.tag 来读取电平。但我的尝试失败了。你能帮我处理这段代码吗?
根据 Mike Corcoran 的建议,我终于得到了这样的解决方案。
require 'luaxml'
local text = [[
<a>
<bcde>
<level>
<bg>details1</bg>
</level>
<level>
<bg>details2</bg>
</level>
</bcde>
</a>
]]
local txml = xml.eval(text)
for _, node in pairs(txml:find("bcde")) do
if node.TAG ~= nil then
if node[node.TAG] == "level" then
local bg = node:find("bg")
if bg ~= nil then
for i=1, #bg do
print( bg[i])
end
end
end
end
end
层太多,似乎很慢..有什么提高效率的建议吗?