lxp

Top  Previous  Next

The LXP namespace contains a XML parser. Full documentation can be found here:

 

http://promixis.com/lua/luaexpat/manual.html

 

Example

 

local lom = require('lxp.lom')

local io = require('io')

local table = require('table')

 

local f = io.open("c:/devel/test.xml")

if not f then

  print("Could not open input file")

  return

end

 

-- read the whole file:

local xml = f:read("*a")

f:close()

 

local xmlTable, err = lom.parse(xml)

if not xmlTable then

  print(err)

  return

end

 

table.print(xmlTable)

 

This example code will read all data from the file "C:\devel\test.xml", which in this example contained:

 

<?xml version="1.0" encoding="UTF-8"?>

<node1 p="asdf">

 Text in tag node1

 <node2>cool stuff</node2>        

</node1>

 

If all goes well it will print the following output:

 

Wed Mar 12 11:22:01 2014        { -- #0

Wed Mar 12 11:22:01 2014           [1] = "\

Wed Mar 12 11:22:01 2014                Text in tag node1\

Wed Mar 12 11:22:01 2014                ",

Wed Mar 12 11:22:01 2014           [2] = { -- #1

Wed Mar 12 11:22:01 2014              [1] = "cool stuff",

Wed Mar 12 11:22:01 2014              ["attr"] = { -- #2

Wed Mar 12 11:22:01 2014              } -- #2,

Wed Mar 12 11:22:01 2014              ["tag"] = "node2",

Wed Mar 12 11:22:01 2014           } -- #1,

Wed Mar 12 11:22:01 2014           [3] = "        \

Wed Mar 12 11:22:01 2014        ",

Wed Mar 12 11:22:01 2014           ["attr"] = { -- #3

Wed Mar 12 11:22:01 2014              [1] = "p",

Wed Mar 12 11:22:01 2014              ["p"] = "asdf",

Wed Mar 12 11:22:01 2014           } -- #3,

Wed Mar 12 11:22:01 2014           ["tag"] = "node1",

Wed Mar 12 11:22:01 2014        } -- #0