Interestingly, we should be in the right subtree as this modified example is supposed to demonstrate (we're getting the correct numbers under each index-entry-term, just the terms are incorrect in all but the first case):
\startxmlsetups xml:test
\xmlsetsetup{#1}{*}{-}
\xmlsetsetup{#1}{index}{xml:*}
\xmlsetsetup{#1}{index-entry}{xml:index-entry}
%\xmlsetsetup{#1}{index-entry}{xml:index-entry-2}
\xmlsetsetup{#1}{term}{xml:index-entry-term}
\xmlsetsetup{#1}{nav-pointer-group}{xml:*}
\xmlsetsetup{#1}{nav-pointer}{xml:nav-pointer}
\xmlsetsetup{#1}{nav-pointer/ext-link}{xml:nav-pointer-link}
\stopxmlsetups
\xmlregisterdocumentsetup{test}{xml:test}
% Index
\startxmlsetups xml:book-back
\xmlflush{#1}
\stopxmlsetups
\startxmlsetups xml:index
\startsectionlevel[title={\xmlfilter{#1}{/index-title-group/title/command(xml:index-title)}},]
\xmlflush{#1}
\stopsectionlevel
\stopxmlsetups
\startxmlsetups xml:index-title
\xmlflush{#1}
\stopxmlsetups
\definedescription[indexentry]
[alternative=top,
headstyle=normal,
headcommand=\hskip-1cm,
margin=1cm,
inbetween=,
]
\startxmlsetups xml:index-entry
\xmlflush{#1}
\stopxmlsetups
\startxmlsetups xml:index-entry-2
\xmlfilter{#1}{/term/command(xml:index-entry-term)}%
\xmlverbatim{#1}
\stopxmlsetups
\startxmlsetups xml:index-entry-term
\indexentry{\xmlflush{#1}}
\stopxmlsetups
\startxmlsetups xml:nav-pointer-group
\xmlconcat{#1}{/nav-pointer}{, }
\stopxmlsetups
\startxmlsetups xml:nav-pointer
\xmlflush{#1}
\stopxmlsetups
\startxmlsetups xml:nav-pointer-link
\xmlflush{#1}
\stopxmlsetups
\startbuffer[test]
Index
First
1
2
3
Second
4
Third
5
6
7
\stopbuffer
\starttext
\xmlprocessbuffer{test}{test}{}
\stoptext
Von: denis.maier@unibe.ch
Gesendet: Montag, 24. Juli 2023 13:38
An: ntg-context@ntg.nl
Betreff: [NTG-context] xml: matches always child of other element
Hi,
I must be missing something obvious, but in this example the pattern for always matches the first element, not the one under the current .
Interestingly, using xml:index-entry-2 instead of the normal version matches correctly... Any hints what is going off the rails here?
Best,
Denis
\startxmlsetups xml:test
\xmlsetsetup{#1}{*}{-}
\xmlsetsetup{#1}{index}{xml:*}
\xmlsetsetup{#1}{index-entry}{xml:index-entry}
%\xmlsetsetup{#1}{index-entry}{xml:index-entry-2}
\xmlsetsetup{#1}{term}{xml:index-entry-term}
\xmlsetsetup{#1}{nav-pointer-group}{xml:*}
\xmlsetsetup{#1}{nav-pointer}{xml:nav-pointer}
\xmlsetsetup{#1}{nav-pointer/ext-link}{xml:nav-pointer-link}
\stopxmlsetups
\xmlregisterdocumentsetup{test}{xml:test}
% Index
\startxmlsetups xml:book-back
\xmlflush{#1}
\stopxmlsetups
\startxmlsetups xml:index
\startsectionlevel[title={\xmlfilter{#1}{/index-title-group/title/command(xml:index-title)}},]
\xmlflush{#1}
\stopsectionlevel
\stopxmlsetups
\startxmlsetups xml:index-title
\xmlflush{#1}
\stopxmlsetups
\definedescription[indexentry]
[alternative=top,
headstyle=normal,
headcommand=\hskip-1cm,
margin=1cm,
inbetween=,
]
\startxmlsetups xml:index-entry
\xmlflush{#1}
\stopxmlsetups
\startxmlsetups xml:index-entry-2
\xmlfilter{#1}{/term/command(xml:index-entry-term)}%
\xmlverbatim{#1}
\stopxmlsetups
\startxmlsetups xml:index-entry-term
\indexentry{\xmlflush{#1}}
\stopxmlsetups
\startxmlsetups xml:nav-pointer-group
\xmlconcat{#1}{/nav-pointer}{, }
\stopxmlsetups
\startxmlsetups xml:nav-pointer
\xmlflush{#1}
\stopxmlsetups
\startxmlsetups xml:nav-pointer-link
\xmlflush{#1}
\stopxmlsetups
\startbuffer[test]
Index
First
1
2
3
Second
1
Third
1
\stopbuffer
\starttext
\xmlprocessbuffer{test}{test}{}
\stoptext