On 4/30/19 9:58 PM, Geert Verhaag wrote: > [...] > \startxmlsetups xml:invoice:invoice > \xmlfirst{#1}{currency} \par > \xmldoif{\xmlfirst{#1}{currency}}{contains(text(),'EURO')} { > Euro set! \par > } > [...] > But the xmldoif command doesn't cause the Euro set be printed?! > > What's wrong here? The manual xml-mkiv.pdf doesn't give me any hint on > how to make this work!
Hi Geert, the syntax reads \xmldoif{#1}{lpath}{action}. So your conditional may read: \xmldoif{#1}{currency[first() and contains(text(),'EURO')]} {Euro set!} In a complete sample (with dollar set first [it won’t show the result unless you set EURO first]): \startbuffer[demo] <doc> <invoice number="194-002" client="RPMB-0012"> <currency>DOLLAR</currency> <currency>EURO</currency> </invoice> </doc> \stopbuffer \startxmlsetups xml:initialize \xmlsetsetup{#1}{doc}{xml:*} \stopxmlsetups \xmlregistersetup{xml:initialize} \startxmlsetups xml:doc \xmlfirst{#1}{currency} \par \xmldoif{#1}{currency[first() and contains(text(),'EURO')]} {Euro set!} \stopxmlsetups \setuppapersize[A8] \starttext \xmlprocessbuffer{main}{demo}{} \stoptext It is all in xml-mkiv.pdf (http://www.pragma-ade.com/general/manuals/xml-mkiv.pdf#page=49). I have just discovered it 😉. Just in case it helps, Pablo -- http://www.ousia.tk ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________