Dear list, I have the following sample: \startbuffer[demo] <doc> <div id="u1" class="level1"> <h1>Unit 1</h1> <p>text</p> </div> <div id="u1a" class="appendices level1"> <h1 class="hidden">Unit 1</h1> <div id="sum1" class="summary level2"> <h2>Summary</h2> <p>summary</p> </div> <div id="sin1" class="synopsis level2"> <h2>Synopsis</h2> <p>synopsis</p> </div> </div> <div id="u2" class="level1"> <h1>Unit 2</h1> <p>text</p> </div> <div id="u2a" class="appendices level1"> <h1 class="hidden">Unit 2</h1> <div id="sum2" class="summary level2"> <h2>Summary</h2> <p>summary</p> </div> <div id="sin2" class="synopsis level2"> <h2>Synopsis</h2> <p>synopsis</p> </div> </div> <div id="u3" class="level1"> <h1>Unit 3</h1> <p>text</p> </div> <div id="u3a" class="appendices level1"> <h1 class="hidden">Unit 3</h1> <div id="sum3" class="summary level2"> <h2>Summary</h2> <p>summary</p> </div> <div id="sin3" class="synopsis level2"> <h2>Synopsis</h2> <p>synopsis</p> </div> </div> </doc> \stopbuffer \startxmlsetups xml:initialize \xmlsetsetup{#1}{doc}{xml:*} \xmlsetsetup{#1}{[contains(@class,'synopsis')]} {xml:specialtitle} \stopxmlsetups \xmlregistersetup{xml:initialize} \startxmlsetups xml:doc \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:specialtitle \startpar \xmltext{#1}{/h2}· \xmltext{#1}{../../div[contains(@class,'appendices')]/h1} \stoppar \stopxmlsetups \starttext \xmlprocessbuffer{main}{demo}{} \stoptext How should I rewrite "{../../div[contains(@class,'appendices')]/h1" to get only the corresponding unit for each xml:specialtitle? I need an ancestor, but I don’t know how to invoke it. Many thanks for your help, Pablo -- http://www.ousia.tk