次のような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
レイヤーが多すぎて遅いようです..効率を改善するための提案はありますか?