[NTG-context] \xmlmap errors when returning key-value
denis.maier at unibe.ch
denis.maier at unibe.ch
Mon Feb 20 15:31:36 CET 2023
> -----Ursprüngliche Nachricht-----
> Von: ntg-context <ntg-context-bounces at ntg.nl> Im Auftrag von Hans Hagen
> via ntg-context
> Gesendet: Donnerstag, 16. Februar 2023 23:45
> An: Denis Maier via ntg-context <ntg-context at ntg.nl>
> Cc: Hans Hagen <j.hagen at freedom.nl>
> Betreff: Re: [NTG-context] Unexpected results with \xmlpos
>
> On 2/16/2023 10:16 AM, Denis Maier via ntg-context wrote:
> > Hi,
> >
> > Iâm getting unexpected results for \xmlpos
> >
> > With the example below, I was expecting to get the following positions:
> >
> > 1 2 3 4
> >
> > However the result is: 2 4 6 8, i.e. each time itâs exactly the double.
> >
> > What am I missing?
>
> that there are spaces between elements .. you can try:
>
> \xmlmatch {#1}
>
> instead
>
> Hans
Thanks, that does the trick.
However, now I get an error when I try to return a key-value setting via xmlmap, see below. Any hints why this does not work
\xmlmapvalue{colgroupalign}{dir: rtl}{align=righttoleft}
\xmlmapvalue{colgroupalign}{dir: ltr}{align=lefttoright}
as opposed to:
\xmlmapvalue{colgroupalignvar}{dir: rtl}{righttoleft}
\xmlmapvalue{colgroupalignvar}{dir: ltr}{lefttoright}
?
Best,
Denis
\startbuffer[test]
<?xml version='1.0' standalone='yes?>
<document>
<table-wrap>
<table>
<colgroup>
<col/>
<col style="dir: rtl"/>
<col style="dir: rtl"/>
<col/>
</colgroup>
<thead>
<tr>
<th>asdf</th>
<th>bsdf</th>
<th>csdf</th>
<th>dsdf</th>
</tr>
</thead>
<tbody>
<tr>
<td>a</td>
<td>b</td>
<td>c</td>
<td>d</td>
</tr>
</tbody>
</table>
</table-wrap>
</document>
\stopbuffer
\startxmlsetups xml:test
\xmlsetsetup{\xmldocument}{document}{xml:*}
\xmlsetsetup{#1}{table-wrap}{xml:table-wrap}
\xmlsetsetup{#1}{table}{xml:table}
\stopxmlsetups
\xmlregistersetup{xml:test}
\xmlmapvalue{colgroupalign}{dir: rtl}{align=righttoleft}
\xmlmapvalue{colgroupalign}{dir: ltr}{align=lefttoright}
\xmlmapvalue{colgroupalignvar}{dir: rtl}{righttoleft}
\xmlmapvalue{colgroupalignvar}{dir: ltr}{lefttoright}
\startxmlsetups xml:table:colgroup
\xmlfilter {#1} {/col/command(xml:table:colgroup:col)} % gives errors
%\xmlfilter {#1} {/col/command(xml:table:colgroup:colvar)} % works
\stopxmlsetups
\startxmlsetups xml:table:colgroup:colvar
\setupTABLE[c][\xmlmatch {#1}][align=\xmlvalue{colgroupalignvar}{\xmlatt{#1}{style}}{lefttoright}]
\stopxmlsetups
\startxmlsetups xml:table:colgroup:col
\setupTABLE[c][\xmlmatch {#1}][\xmlvalue{colgroupalign}{\xmlatt{#1}{style}}{align=lefttoright}]
\stopxmlsetups
\startxmlsetups xml:document
\xmlflush{#1}
\stopxmlsetups
\startxmlsetups xml:table-wrap
\startplacetable
\xmlflush{#1}
\stopplacetable
\stopxmlsetups
\startxmlsetups xml:table
\xmlfilter {#1} {/colgroup/command(xml:table:colgroup)}
\bTABLE
\xmlfilter{#1}{/thead/command(xml:table:thead)}
\xmlfilter{#1}{/tbody/command(xml:table:tbody)}
\eTABLE
\stopxmlsetups
\startxmlsetups xml:table:thead
\bTABLEhead
\xmlfilter{#1}{/tr/command(xml:table:thead:tr)}
\eTABLEhead
\stopxmlsetups
\startxmlsetups xml:table:thead:tr
\bTR
\xmlfilter{#1}{/th/command(xml:table:thead:tr:th)}
\eTR
\stopxmlsetups
\startxmlsetups xml:table:thead:tr:th
\bTH
\xmlflush{#1}
\eTH
\stopxmlsetups
\startxmlsetups xml:table:tbody
\bTABLEbody\xmlfilter{#1}{/tr/command(xml:table:tbody:tr)}\eTABLEbody
\stopxmlsetups
\startxmlsetups xml:table:tbody:tr
\bTR\xmlfilter{#1}{/td/command(xml:table:tbody:tr:td)}\eTR
\stopxmlsetups
\startxmlsetups xml:table:tbody:tr:td
\bTC \xmlflush{#1} \eTC
\stopxmlsetups
\starttext
\xmlprocessbuffer{test}{test}{}
\stoptext
More information about the ntg-context
mailing list