On 7/7/2020 10:46 PM, Pablo Rodriguez wrote:
Dear list,
I have the following sample:
\startbuffer[demo] <document> <h2 id="heading">Heading</h2> <ul> <li>list</li> </ul> <h2 id="heading-1">Heading</h2> <ul> <li>list <ul> <li>list</li> </ul></li> </ul> <h2 id="heading-2">Heading</h2> <ul> <li>list <ul> <li>list <ul> <li>list</li> </ul></li> </ul></li> </ul> </document> \stopbuffer
\startxmlsetups xml:demo:base \xmlsetsetup{#1}{document|h2|ul|li}{xml:*} %~ \xmlsetsetup{#1}{ul/li/!ul}{xml:last:item} % nothing changes %~ \xmlsetsetup{#1}{ul/li/!li}{xml:last:item} % blank item inserted %~ \xmlsetsetup{#1}{h2/**/ul/li}{xml:last:item} % nothing changes \xmlsetsetup{#1}{h2/***/ul/li/!ul}{xml:last:item} % shouldn’t be this one? \stopxmlsetups
\xmlregistersetup{xml:demo:base}
\startxmlsetups xml:document \xmlflush{#1} \stopxmlsetups
\startxmlsetups xml:h2 \section{\xmlflush{#1}} \stopxmlsetups
\startxmlsetups xml:ul \startitemize\xmlflush{#1}\stopitemize \stopxmlsetups
\startxmlsetups xml:li \startitem\xmlflush{#1}\stopitem \stopxmlsetups
\startxmlsetups xml:last:item \startitem\red\xmlflush{#1}\stopitem \stopxmlsetups
\starttext \xmlprocessbuffer{main}{demo}{} \stoptext
I need to be able to select the last <li> (the one with no <ul> child) in the <h2> element.
I thought that the lpath for that would be "h2/***/ul/li/!ul", but I don’t know what I’m missing, since it doesn’t work at all.
Which would be the right lpath to select the last item in each list? This should work but we're one off so i need to fix that.
\startbuffer[demo] <document> <ul> <li>first</li> <li>any</li> <li>last</li> </ul> </document> \stopbuffer \startxmlsetups xml:demo:base \xmlsetsetup{#1}{document|ul|li}{xml:*} \xmlsetsetup{#1}{ul/li[1]}{xml:item:first} \xmlsetsetup{#1}{ul/li[-1]}{xml:item:last} \stopxmlsetups \xmlregistersetup{xml:demo:base} \startxmlsetups xml:document \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:ul \startitemize \xmlflush{#1} \stopitemize \stopxmlsetups \startxmlsetups xml:li \startitem \xmlflush{#1} \stopitem \stopxmlsetups \startxmlsetups xml:item:first \startitem \color[blue]{\xmlflush{#1}} \stopitem \stopxmlsetups \startxmlsetups xml:item:last \startitem \color[red]{\xmlflush{#1}} \stopitem \stopxmlsetups \starttext \xmlprocessbuffer{main}{demo}{} \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------