Stary2001

Untitled

Jan 4th, 2013
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. page={}
  2.  
  3. function getsize(node)
  4.  
  5. end
  6.  
  7. function strip(s)
  8. return string.gsub(string.gsub(s,"^%s+",""),"%s+$","")
  9. end
  10.  
  11. function copy(tab)
  12. if not tab then return end
  13. local t={}
  14. for k,v in pairs(tab) do
  15. if type(v) ~="table" then t[k]=v else t[k] = table.copy(v) end
  16. end
  17. return t
  18. end
  19.  
  20. function parse(xmlPage)
  21. local t = {}
  22.  
  23. for k,v in ipairs(xmlPage) do
  24. if type(v)=="table" then
  25. local data = copy(v.xarg)
  26. if data then
  27. data.pos=nil
  28. data.size=nil
  29. end
  30.  
  31. t[#t+1] = layout.new(v.label,
  32. v["pos"],
  33. v["size"] or getsize(v),
  34. data,
  35. parse(v))
  36. else
  37. v = strip(v)
  38.  
  39. t[#t+1] = layout.new("text",layout.nextpos(),{x=1,y=1},{},v)
  40. end
  41. end
  42.  
  43. return t
  44. end
  45.  
  46. function page.load(url)
  47. print("Loading '" .. url .. "'.")
  48. local proto,rest = string.gmatch(url,"(%a-)://(.+)")()
  49.  
  50. local xmlPage = xml.parse(protocols[proto].load(rest))
  51. xmlPage=xmlPage[1]
  52.  
  53. return parse(xmlPage)
  54. end
Advertisement
Add Comment
Please, Sign In to add comment