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 <ntg-context@ntg.nl>
Gesendet: Sonntag, 3. September 2023 14:11
An: NTG ConTeXt <ntg-context@ntg.nl>
Cc: Hans van der Meer <havdmeer@ziggo.nl>
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