在LuaXML中编辑属性

时间:2015-02-18 23:30:48

标签: xml lua luaxml

我已经能够保存和加载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。

1 个答案:

答案 0 :(得分:0)

我可能错了,但是找到你正在寻找的标签的属性不是第二个属性?

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

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/ 更详细:

  

function xml.find(var,tag,attributeKey,attributeValue)   递归地解析Lua表以获得适合所提供标签的子语句&gt;和属性

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。