blob: 154bd9444f02fdcb9a3218b885be7ca56b955f26 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
%%
%% 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 = [[
<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
|