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? Many thanks for your help, Pablo -- http://www.ousia.tk