On Fri, 11 Jan 2019, Henri Menke wrote:

On 11/01/19 10:26 AM, Aditya Mahajan wrote:
Hi,

I have an XML file (which is generated via a program that I have no
control over), which contains elements as follows:

         <p>
            <equation text="$$y_1(t) = 1, t \geq 0$$">
               <img alt="$$y_1(t) = 1, t \geq 0$$" class="equation"
height="15px" src="Lab01_eq10401623798909303081.png" width="95px"/>
            </equation>
         </p>

I want to typeset the `text` attribute of equation (and ignore the <img>
tag). So, I tried:

\startxmlsetups matlab
  % Bunch of missing definitions
  \xmlsetsetup{#1}{equation}{matlab:*}
\stopxmlsetups

\startxmlsetups matlab:equation
  \xmlatt{#1}{text}
\stopxmlsetups

This literally typesets `$$y_1(t) = 1, t \geq 0$$`. How can I flush the
attribute using ctxcatcodes? (There is \xmlflushcontent, but that is for
content and not attributes).

You could write your own attribute fetcher in Lua.  Probably there is a
more elegant method.

\startbuffer[test]
        <p>
           <equation text="$$y_1(t) = 1, t \geq 0$$">
              <img alt="$$y_1(t) = 1, t \geq 0$$" class="equation"
height="15px" src="Lab01_eq10401623798909303081.png" width="95px"/>
           </equation>
        </p>
\stopbuffer

\startxmlsetups matlab
 % Bunch of missing definitions
 \xmlsetsetup{#1}{p}{matlab:*}
 \xmlsetsetup{#1}{equation}{matlab:*}
\stopxmlsetups

\startxmlsetups matlab:p
 \xmlflush{#1}
\stopxmlsetups

\startxmlsetups matlab:equation
 \xmlfunction{#1}{equation}
\stopxmlsetups
\startluacode
local a = "text"
local ctxcatcodes = catcodes.numbers.ctxcatcodes

function xml.functions.equation(id)
   local e = lxml.getid(id)
   if e then
       local at = e.at
       if at then
           local att = at[a]
           if att ~= "" then
               context.sprint(ctxcatcodes,att)
           end
       end
   end
end
\stopluacode

\xmlregistersetup{matlab}

\starttext
\xmlprocessbuffer{test}{test}{}
\stoptext

Thanks!

Aditya
___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to