多个标签的XML我试图解析XML文件中的数据,如LuaXML解析与同名
<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读出水平。但是我的尝试失败了。你能帮我看看这段代码吗?
我最终得到这样的解决方案,基于迈克考可兰的建议。
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
有太多的图层,看起来很慢..任何提高效率的建议?
哪里可以找到节点数据类型doc?我在LuaXML网站找不到它。 – Decula
@Decula'node'不是来自luaxml的数据类型。它只是一个在循环示例中使用的变量,所以它可以在循环内引用。你可以把它命名为“children”,“value”或其他东西。 – greatwolf
@greatwolf谢谢你的通知。我的意思是我想知道luaxml对象的数据类型.....有object.TAG。我想知道我可以使用哪些额外属性 – Decula