On 8/16/20 11:46 AM, Taco Hoekwater wrote:
\xmlfilter is your friend:
\startxmlsetups xml:initialize \xmlsetsetup{#1}{html}{xml:gen} \stopxmlsetups
\xmlregistersetup{xml:initialize}
\startxmlsetups xml:gen \xmlfilter{#1}{/**/span[@class='special']/command(xml:special)} \stopxmlsetups
\startxmlsetups xml:special \bgroup\bfd\ssd\xmlflush{#1}\egroup \stopxmlsetups
Many thanks for your reply, Taco. This was extremely handy and helpful (it is also the first time I understand what \xmlfilter is used for). My final solution required nesting filters, which worked perfectly fine (included below). Many thanks for your help, Pablo Just for the record: \startbuffer[demo] <html> <body> <div id="First"> <p>This is <span class="special">One</span> a paragraph.</p> <p>This is another paragraph.</p> <p>This is another <span class="special">Two</span> paragraph.</p> <p>This is another <span class="special">Three</span> paragraph.</p> <p>This is another <span class="special">Four</span> paragraph.</p> </div> <div id="Second"> <p>This is <span class="special">A</span> a paragraph.</p> <p>This is another paragraph.</p> <p>This is another <span class="special">B</span> paragraph.</p> <p>This is another <span class="special">C</span> paragraph.</p> <p>This is another <span class="special">D</span> paragraph.</p> </div> </body> </html> \stopbuffer \startxmlsetups xml:initialize \xmlsetsetup{#1}{html}{xml:gen} \stopxmlsetups \xmlregistersetup{xml:initialize} \startxmlsetups xml:gen \xmlfilter{#1}{/**/div/command(xml:chapter)} \stopxmlsetups \startxmlsetups xml:chapter \startsection[title=\xmlatt{#1}{id}] \startitemize[packed] \xmlfilter{#1}{**/span[@class='special']/command(xml:special)} \stopitemize \stopsection \stopxmlsetups \startxmlsetups xml:special \startitem\xmlflush{#1}\stopitem \stopxmlsetups \starttext \xmlprocessbuffer{main}{demo}{} \stoptext -- http://www.ousia.tk