diff --git a/xmlSimple.lua b/xmlSimple.lua index 2a49e2b..9c9f0f7 100644 --- a/xmlSimple.lua +++ b/xmlSimple.lua @@ -1,4 +1,4 @@ -module(..., package.seeall) +local XmlLib = {} --------------------------------------------------------------------------------- --------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ module(..., package.seeall) -- --------------------------------------------------------------------------------- --------------------------------------------------------------------------------- -function newParser() +function XmlLib.newParser() XmlParser = {}; @@ -51,14 +51,14 @@ function newParser() end function XmlParser:ParseArgs(node, s) - string.gsub(s, "(%w+)=([\"'])(.-)%2", function(w, _, a) + string.gsub(s, "([%w_]+)=([\"'])(.-)%2", function(w, _, a) node:addProperty(w, self:FromXmlString(a)) end) end function XmlParser:ParseXmlText(xmlText) local stack = {} - local top = newNode() + local top = XmlLib.newNode() table.insert(stack, top) local ni, c, label, xarg, empty local i, j = 1, 1 @@ -71,11 +71,11 @@ function newParser() stack[#stack]:setValue(lVal) end if empty == "/" then -- empty element tag - local lNode = newNode(label) + local lNode = XmlLib.newNode(label) self:ParseArgs(lNode, xarg) top:addChild(lNode) elseif c == "" then -- start tag - local lNode = newNode(label) + local lNode = XmlLib.newNode(label) self:ParseArgs(lNode, xarg) table.insert(stack, lNode) top = lNode @@ -121,7 +121,7 @@ function newParser() return XmlParser end -function newNode(name) +function XmlLib.newNode(name) local node = {} node.___value = nil node.___name = name @@ -167,3 +167,5 @@ function newNode(name) return node end + +return XmlLib \ No newline at end of file