%% %% Ein Beispiel der DANTE-Edition %% %% 1. Auflage %% %% %% Copyright (C) 2013 Herbert Voss %% %% It may be distributed and/or modified under the conditions %% of the LaTeX Project Public License, either version 1.3 %% of this license or (at your option) any later version. %% %% See http://www.latex-project.org/lppl.txt for details. %% %% %% ==== \nopagenumbers\parindent=0pt %StartShownPreambleCommands \directlua{function printtable(tb, Ebene) Ebene = Ebene or 1 local tab = "\string\\hbox to "..tostring((Ebene-1)*2).."em{}" for k,v in pairs(tb) do if type(v) \string~= "table" then tex.print("\string\\hbox{"..tab..k.."="..v.."}\string\\par") else tex.print("\string\\hbox{"..tab..k.."}\string\\par") Ebene=Ebene+1 printtable(v, Ebene) end end end xml = require('luaxml-mod-xml') handler = require('luaxml-mod-handler') %--------------------------------------------------- xmlBeispiel = [[ hello world. another one ]] %--------------------------------------------------- treehandler = handler.simpleTreeHandler() x = xml.xmlParser(treehandler) } %StopShownPreambleCommands \relax foo \par\tt \directlua{x:parse(xmlBeispiel)} \par % Parsen des xml-Codes \directlua{printtable(treehandler.root)}\par % Ausgeben des xml-Baums als Text \directlua{print(xml.serialize(treehandler.root))} % Auf der Konsole ausgeben \directlua{tex.print(treehandler.root["a"]["b"][2])} % Direktzugriff auf einzelne Elemente \bye