Mercurial Hosting > luan
view src/luan/modules/Xml.luan @ 1790:a8c685a894b4
start xml work
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 25 Dec 2023 23:07:59 -0700 |
parents | |
children |
line wrap: on
line source
require "java" local XmlParser = require "java:goodjava.xml.XmlParser" local XmlElement = require "java:goodjava.xml.XmlElement" local Luan = require "luan:Luan.luan" local error = Luan.error local set_metatable = Luan.set_metatable or error() local Xml = {} Xml.encode = XmlElement.encode local function new(java,mt) local t = {} t.java = java set_metatable(t,mt) return t end local element_mt = {} local xml_mt = {} function xml_mt.__index(xml,key) if key == "element" then return new( xml.java.element, element_mt ) end if key == "declaration" then return xml.java.declaration end return nil end function xml_mt.__new_index(xml,key,value) if key == "element" then xml.java.setElement( value.java ) elseif key == "declaration" then xml.java.declaration = value else error("invalid key: "..key) end end function xml_mt.__to_string(xml) return xml.java.toString() end function Xml.parse(text) return new( XmlParser.parse(text), xml_mt ) end return Xml