diff options
Diffstat (limited to 'Master/texmf-dist/doc/luatex/luaintro/06-03-1.lualtx3')
-rw-r--r-- | Master/texmf-dist/doc/luatex/luaintro/06-03-1.lualtx3 | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/luatex/luaintro/06-03-1.lualtx3 b/Master/texmf-dist/doc/luatex/luaintro/06-03-1.lualtx3 new file mode 100644 index 00000000000..699cc5f7625 --- /dev/null +++ b/Master/texmf-dist/doc/luatex/luaintro/06-03-1.lualtx3 @@ -0,0 +1,55 @@ +%% +%% Ein Beispiel der DANTE-Edition +%% +%% 1. Auflage +%% +%% Beispiel 06-03-1 auf Seite 112. +%% +%% 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 = [[ + <a> + <d>hello</d> + <b>world.</b> + <b>another one</b> + </a>]] +%--------------------------------------------------- +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 |