Am 22.10.2011 18:46, schrieb Thomas A. Schmitz: > Hi all, > > again, I'm playing a bit with processing my xml in lua. I want a simple > interface for processing tables (I don't need all the power and > complexity of cals tables and want to learn something in the process). > And I thought that collecting the setups in lua might be the easiest > way, but so far, I haven't been successful. Here's an example: > > \startbuffer[test] > <a> > <nattable frame="on"> > <tr> > <td>1</td> > <td>2</td> > <td>3</td> > <td>4</td> > </tr> > <tr> > <td>5</td> > <td>6</td> > <td>7</td> > <td>8</td> > </tr> > </nattable> > </a> > \stopbuffer > > \startxmlsetups xml:testsetups > \xmlsetsetup{main}{a|nattable|tr|td|}{xml:*} > \stopxmlsetups > > \xmlregistersetup{xml:testsetups} > > \startxmlsetups xml:a > \xmlflush{#1} > \stopxmlsetups > > \startxmlsetups xml:nattable > \startluacode > framestate = lxml.att("#1", "frame")
context(type(framestate)) Here is the problem. The function lxml.att() only prints the attribute, but returns nothing (framestate = nil). I looked into an old example of mine where I played with attributes, but it's totally outdated (uses xml.filters, now mkii only). Sorry, no solution (goat milk was out). Peter [lxml-tex.lua] function lxml.attribute(id,pattern,a,default) local collected = xmlapplylpath(getid(id),pattern) if collected then attribute(collected,a,default) end end local function attribute(collected,a,default) if collected and #collected > 0 then local at = collected[1].at local str = (at and at[a]) or default if str and str ~= "" then contextsprint(notcatcodes,str) end elseif default then contextsprint(notcatcodes,default) end end > context(framestate) does nothing > context(true) > context.placefigure( { "here" }, "none" , function() > context.setupTABLE( { "frame=on" } ) > context.bTABLE() > context.xmlflush("#1") > context.eTABLE() > end) > \stopluacode > \stopxmlsetups > > \startxmlsetups xml:tr > \startluacode > context.bTR() > context.xmlflush("#1") > context.eTR() > \stopluacode > \stopxmlsetups > > \startxmlsetups xml:td > \startluacode > context.bTD() > context.xmlflush("#1") > context.eTD() > \stopluacode > \stopxmlsetups > > \starttext > \xmlprocessbuffer{main}{test}{} > \stoptext > > question: I have the value "on" in the lua variable "framestate." But > how can I pass this on to the line > context.setupTABLE( { "frame=on" } )? > I tried something like > context.setupTABLE( { "frame=" .. framestate } ) > but that doesn't work. Any suggestions? > > Thomas > ___________________________________________________________________________________ > > If your question is of interest to others as well, please add an entry > to the Wiki! > > maillist : ntg-context@ntg.nl / > http://www.ntg.nl/mailman/listinfo/ntg-context > webpage : http://www.pragma-ade.nl / http://tex.aanhet.net > archive : http://foundry.supelec.fr/projects/contextrev/ > wiki : http://contextgarden.net > ___________________________________________________________________________________ > > ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________