2

我已经能够保存和加载 XML 文件,但我遇到了实际影响其中数字的问题。这是我的例子:

require 'luaxml'

local text = [[
<Viewers>
  <eaglesfan0251>
    <Minutes>0</Minutes>
    <Minutes>eaglesfan0251</Minutes>
  </eaglesfan0251>
  <managarmr83>
    <Minutes>1</Minutes>
    <Minutes>managarmr83</Minutes>
  </managarmr83>
  <gorbatron5000>
    <Minutes>2</Minutes>
  </gorbatron5000>
</Viewers>
]]


local t = xml.eval(text)

for a, b in pairs(t:find("gorbatron5000","Minutes")) do
    if b.TAG ~= nil then
        if b[b.TAG] == "Minutes" then
            print(b[a])
            t:append("Minutes")[a] = "0"
        end
    end
end

print(t)

这会在我试图影响的位置之后添加第二个 Minutes 标签。基本上我希望能够阅读会议记录,然后更改它并更新 XML。

4

1 回答 1

0

我可能错了,但不是 find 您要查找的标签的属性中的第二个属性吗?

根据文档,我认为您的代码应该是这样的:

local t = xml.eval(text)

local node = t:find("gorbatron5000")
if node ~= nil then
  print(node[1]) -- Minutes if your first child
  node[1] = 0
end

来源: http: //viremo.eludi.net/LuaXML/ 更详细:

函数 xml.find(var, tag, attributeKey,attributeValue) 递归解析 Lua 表以查找适合提供的标记 > 和属性的子语句

param var, the table to be searched in.
param tag (optional) the xml tag to be found.
param attributeKey (optional) the exact attribute to be found.
param attributeValue (optional) the attribute value to be found.
Returns the first (sub-)table which matches the search condition or nil.

所以我的理解导致了我编写的代码。让我知道这是否有帮助,因为我自己也在学习 Lua。

于 2015-02-19T14:13:10.513 回答