This line of code comes from the xml documentation (page 31): \xmlfilter{#1}{./node[@type=="cleanup"]} It should select among the <node>'s those with <node type="cleanup">. However, this node is not selected in the call to \xmlfilter. Where am I wrong? MWE follows % failure to typeset attribute selected. \setuppapersize[A5][A5] \startxmlsetups demo:attribute \xmlsetsetup{#1}{root|node}{demo:attribute:*} \stopxmlsetups \xmlregisterdocumentsetup{demo}{demo:attribute} \startxmlsetups demo:attribute:root Execute \type{\xmlall{#1}{./node}} \crlf \xmlall{#1}{./node} \crlf Execute \type{\xmlfilter{#1}{./node[@type=="cleanup"]}} \xmlfilter{#1}{./node[@type=="cleanup"]} \crlf \stopxmlsetups \startxmlsetups demo:attribute:node calling node <\xmltag{#1}> \xmlflush{#1} \crlf \stopxmlsetups \startbuffer[attribute] <root> <node>no attribute</node> <node type="cleanup">attribute type = cleanup</node> </root> \stopbuffer \startbuffer[attribute2] <root> <node>no attribute</node> <node type="cleanup">attribute type=cleanup</node> </root> \stopbuffer \starttext \ConTeXt\ version\contextversion\blank \xmlprocessbuffer{demo}{attribute}{} \stoptext Hans van der Meer