IDK. But why do have a setup for <something>, which does not appear in your xml source (shouldn't it be <what>?)?
Von: Hans van der Meer via ntg-context
Gesendet: Sonntag, 3. September 2023 14:11
An: NTG ConTeXt
Cc: Hans van der Meer
Betreff: [NTG-context] ifxmlselfempty
Is it possible that the new \ifxmlselfempty has reversed its outcome? Or did I something wrong in this MWE?
Here an MWE.
yours sincerely
dr. Hans van der Meer
\startbuffer[test]
<what>
<emptynode value="!empty node!"/>
<notemptynode>!not empty node!</notemptynode>
</what>
\stopbuffer
\startxmlsetups xml:mysetups
\xmlsetsetup{\xmldocument}{something|emptynode|notemptynode}{xml:*}
\stopxmlsetups
\xmlregistersetup{xml:mysetups}
\startxmlsetups xml:emptynode
node=\xmltag{#1}:\crlf
ifxmlselfempty-else-fi:\space
\ifxmlselfempty{#1}
attribute = \xmlatt{#1}{value}
\else
content = \xmlflush{#1}
\fi
\crlf
ifxmlselfempty-else-fi reversed:\space
\ifxmlselfempty{#1}
content = \xmlflush{#1}
\else
attribute = \xmlatt{#1}{value}
\fi
\blank
\stopxmlsetups
\startxmlsetups xml:notemptynode
node=\xmltag{#1}:\crlf
ifxmlselfempty-else-fi:\space
\ifxmlselfempty{#1}
attribute = \xmlatt{#1}{value}
\else
content = \xmlflush{#1}
\fi
\crlf
ifxmlselfempty-else-fi reversed:\space
\ifxmlselfempty{#1}
content = \xmlflush{#1}
\else
attribute = \xmlatt{#1}{value}
\fi
\blank
\stopxmlsetups
\startxmlsetups xml:something
\xmlall{#1}{./emptynode}\blank
\xmlall{#1}{./notemptynode}\blank
\stopxmlsetups
\starttext
\ConTeXt\ \contextversion\blank
\xmlprocessbuffer{main}{test}{}
\stoptext