I do not understand the behaviour of \xmlindex in the code below. The goal is to extract the contents of node <abc>-number 1. The strange things is that \xmltext returns the contents of both the <abc> nodes, but \xmlindex returns nothing.
The returns of the \writestatus calls:
>>1>> ab-2        : ::
>>2>> ab-2        : :ABC-1ABC-2:


\startxmlsetups xml:testsetups
\xmlsetsetup{test}{test|ab|abc}{xml:*}
\stopxmlsetups
\xmlregistersetup{xml:testsetups}

\startxmlsetups xml:test
\xmlflush{#1}
\stopxmlsetups

\startxmlsetups xml:ab
\writestatus{>>1>> \xmltag{#1}-\xmlcount{#1}{/abc}}{:\xmlindex{#1}{/abc}{1}:}
\writestatus{>>2>> \xmltag{#1}-\xmlcount{#1}{/abc}}{:\xmltext{#1}{/abc}:}
\stopxmlsetups

\starttext
\xmlprocessfile{test}{test.xml}{}
\stoptext

Input is:
<test>
<ab>
<abc>ABC-1</abc>
<abc>ABC-2</abc>
</ab>
</test>

Hans van der Meer