Dear list, I have the following sample: \startbuffer[demo] <div> <h1 id="myspecialid">First Title</h1> <p>A paragraph</p> <p></p> <h1>Second Title</h1> <p>A paragraph refered to <a href="#myspecialid">the previous section</a></p> <p></p> </div> \stopbuffer \startxmlsetups xml:initialize \xmlsetsetup{#1}{div|h1|p|a}{xml:*} \stopxmlsetups \xmlregistersetup{xml:initialize} \startxmlsetups xml:div \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:h1 \section[\xmlatt{#1}{id}]{\xmlflush{#1}} \stopxmlsetups \startxmlsetups xml:p \xmlflush{#1}\par \stopxmlsetups \startxmlsetups xml:a \about[\xmlatt{#1}{href}] \stopxmlsetups \starttext \xmlprocessbuffer{main}{demo}{} \stoptext The only way to make the link work in XML is to remove the '#' char from \xmlatt{#1}{href}. How could I achieve it without modifying the XML source? Related to this issue, I also have the following lpath: [contains(text()='#')] Well, how could I make that the text begins (and not only contains) with the regular expression "#[a-z]"? Many thanks for your help, Pablo -- http://www.ousia.tk