#!/usr/bin/lua ---Simple command line test parser - applies handler[s] specified -- to XML file (or STDIN) and dumps results
-- -- $Id: testxml.lua,v 1.1.1.1 2001/11/28 06:11:33 paulc Exp $
-- -- $Log: testxml.lua,v $
-- Revision 1.1.1.1 2001/11/28 06:11:33 paulc
-- Initial Import -- local modxml local handler local pretty if kpse then modxml = require('luaxml-mod-xml') handler = require('luaxml-mod-handler') pretty = require('luaxml-pretty') else modxml = require('luaxml.mod-xml') handler = require('luaxml.mod-handler') pretty = require('luaxml.pretty') end -- Defaults _print = nil _simpletree = nil _dom = nil _file = nil _xmlrpc = nil _debug = nil _ws = nil _noentity = nil _usage = [[ textxml.lua [-print] [-simpletree] [-dom] [-xmlrpc] [-debug] [-ws] [-noentity] [-help] [file] ]] _help = [[ testxml.lua - Simple command line XML processor Options: -print : Generate event dump (default) -simpletree : Generate simple tree -dom : Generate DOM-like tree -debug : Print debug info (filename/text) -ws : Do not strip whitespace -noentity : Do not expand entities -help : Print help file : XML File (parse stdin in nil) ]] index = 1 local exit = os.exit function setOptions(x) if _ws then x.options.stripWS = nil end if _noentity then x.options.expandEntities = nil end end while arg[index] do --print (arg[index]) if (string.sub(arg[index],1,1)=='-') then if arg[index] == "-print" then _print = 1 elseif arg[index] == "-simpletree" then _simpletree= 1 elseif arg[index] == "-dom" then _dom= 1 elseif arg[index] == "-xmlrpc" then _xmlrpc= 1 elseif arg[index] == "-debug" then _debug = 1 elseif arg[index] == "-ws" then _ws = 1 elseif arg[index] == "-noentity" then _noentity = 1 elseif arg[index] == "-help" then print(_usage) exit() else print(_usage) exit() end else -- Filename is last argument if present if arg[index+1] then print(_usage) exit() else _file = arg[index] end end index = index + 1 end if _file then print("File",_file) if (_debug) then io.write ( "File: ".._file.."\n" ) end --xml = read(openfile(_file,"r"),"*a") local f, e = io.open(_file, "r") if f then xml = f:read("*a") else error(e) end else xml = io.read("*a") end if _debug then io.write ( "----------- XML\n" ) io.write (xml.."\n") end if _print or not (_print or _dom or _simpletree or _print or _xmlrpc) then io.write ( "----------- Print\n" ) h = handler.printHandler() x = modxml.xmlParser(h) setOptions(x) x:parse(xml) end if _simpletree then io.write ( "----------- SimpleTree\n" ) h = handler.simpleTreeHandler() x = modxml.xmlParser(h) setOptions(x) x:parse(xml) pretty.pretty('root',h.root) end if _dom then io.write ( "----------- Dom\n" ) h = handler.domHandler() x = modxml.xmlParser(h) setOptions(x) x:parse(xml) pretty.pretty('root',h.root) io.write ( "-----------\n" ) end