Lua:
Å jobbe med XML

Hvordan:

Lua inkluderer ikke innebygd XML-parsing, men det finnes biblioteker som LuaXML og xml2lua som får jobben gjort. Her er et kjapt blikk på parsing av XML med xml2lua:

local xml2lua = require("xml2lua")
local handler = require("xmlhandler.tree")

local xmlParser = xml2lua.parser(handler)
xmlParser:parse([[<root><book id="123">Programming in Lua</book></root>]])

print(handler.root.book._attr.id)  -- Utgår: 123
print(handler.root.book[1])        -- Utgår: Programming in Lua

For å skrive XML, her er et mini-eksempel som bruker LuaXML:

local luaxml = require("LuaXML")

local xml = xml.new("root")
xml:append("book")[1] = "Programming in Lua"
xml.book._attr = {id="123"}

print(xml:tag())  -- Utgår: <root><book id="123">Programming in Lua</book></root>

Dypdykk

XML, kort for Extensible Markup Language, har vært en standard i datarepresentasjon og utveksling siden midten av 90-tallet. Det gir struktur til data og er både lesbar for mennesker og maskinparsbar.

Selv om JSON og YAML nå er favorisert for sin enkelhet, forblir XML utbredt i mange bedrifts- og arvesystemer. I Lua er ikke innfødt XML-håndtering innebygd fordi Lua er designet for å være liten og utvidbar gjennom moduler.

XML-biblioteker for Lua, som LuaXML, xml2lua, og andre, brobygger dette gapet. LuaXML tilbyr en lettvekts XML-leser og -skriver, mens xml2lua bruker en hendelsesdrevet tilnærming som ligner SAX-parsere. Disse bibliotekene er vanligvis implementert i ren Lua for portabilitet, mens noen kan være avhengige av C for ytelse.

Når det kommer til ytelse og minnebruk, kan Lua’s XML-biblioteker ikke være like raske som de i språk med innebygd støtte. Imidlertid, for de fleste bruksområder i Lua, spesielt i spillutvikling eller skripting for innebygde systemer, gjør disse bibliotekene en fin jobb uten å overbelaste systemet.

Se Også