[NTG-context] Re: Testing whether an XML attribute exists
But there is also \ifxmlattempty{#1}{prefix} .. \else .. \fi yours sincerely dr. Hans van der Meer > On 17 Oct 2023, at 13:37, Taco Hoekwater wrote: > > > >> On 17 Oct 2023, at 12:43, Michael Guravage >> wrote: >> >> Hi, >> >> I am typesetting a very simple address list whose source is written in XML. >> Typesetting choices need to be made dependent on the presence of various >> attributes; consider the following element. >> >> >> >> If the prefix attribute exists I'l like the name to appear as, e.g. 'Boer, >> den." The several XML attribute testing functions in the XML manual appear >> to discriminate on an attribute's value. I tried \xmldoifnotatt in an >> attempt to say, "TRUE if prefix does not match an empty string", since I am >> not interested in the attribute's value but only whether or not it exists. >> The code below doesn't work. If someone who knows why it doesn't work would >> enlighten my ignorance I would be most grateful. A brief explanation and >> example of \xmldoifatt, \xmldoifnotatt, and \xmldoifelseatt would be >> exceedingly helpful. >> >> \startxmlsetups xml:list:family >> {\bf \xmlatt{#1}{surname} \xmldoifnotatt{#1, prefix, ''} {, >> \xmlatt{#1}{prefix}}} \crlf > > > Syntax error there, you need: > > \xmldoifnotatt{#1}{prefix}{}{, \xmlatt{#1}{prefix}} > > Best wishes, > Taco > ___ > If your question is of interest to others as well, please add an entry to the > Wiki! > > maillist : ntg-context@ntg.nl / > https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl > webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror) > archive : https://github.com/contextgarden/context > wiki : https://wiki.contextgarden.net > ___ ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror) archive : https://github.com/contextgarden/context wiki : https://wiki.contextgarden.net ___
[NTG-context] Re: Testing whether an XML attribute exists
> On 17 Oct 2023, at 12:43, Michael Guravage > wrote: > > Hi, > > I am typesetting a very simple address list whose source is written in XML. > Typesetting choices need to be made dependent on the presence of various > attributes; consider the following element. > > > > If the prefix attribute exists I'l like the name to appear as, e.g. 'Boer, > den." The several XML attribute testing functions in the XML manual appear > to discriminate on an attribute's value. I tried \xmldoifnotatt in an > attempt to say, "TRUE if prefix does not match an empty string", since I am > not interested in the attribute's value but only whether or not it exists. > The code below doesn't work. If someone who knows why it doesn't work would > enlighten my ignorance I would be most grateful. A brief explanation and > example of \xmldoifatt, \xmldoifnotatt, and \xmldoifelseatt would be > exceedingly helpful. > > \startxmlsetups xml:list:family > {\bf \xmlatt{#1}{surname} \xmldoifnotatt{#1, prefix, ''} {, > \xmlatt{#1}{prefix}}} \crlf Syntax error there, you need: \xmldoifnotatt{#1}{prefix}{}{, \xmlatt{#1}{prefix}} Best wishes, Taco ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror) archive : https://github.com/contextgarden/context wiki : https://wiki.contextgarden.net ___
[NTG-context] Testing whether an XML attribute exists
Hi, I am typesetting a very simple address list whose source is written in XML. Typesetting choices need to be made dependent on the presence of various attributes; consider the following element. If the prefix attribute exists I'l like the name to appear as, e.g. 'Boer, den." The several XML attribute testing functions in the XML manual appear to discriminate on an attribute's value. I tried \xmldoifnotatt in an attempt to say, "TRUE if prefix does not match an empty string", since I am not interested in the attribute's value but only whether or not it exists. The code below doesn't work. If someone who knows why it doesn't work would enlighten my ignorance I would be most grateful. A brief explanation and example of \xmldoifatt, \xmldoifnotatt, and \xmldoifelseatt would be exceedingly helpful. \startxmlsetups xml:list:family {\bf \xmlatt{#1}{surname} \xmldoifnotatt{#1, prefix, ''} {, \xmlatt{#1}{prefix}}} \crlf \xmlflush{#1} \stopxmlsetups I have attached three files below: an XML address list, the ConTeXt source file and the typeset result. -- With kind regards, Michael Guravage \startxmlsetups xml:list:base \xmlsetsetup{#1}{addressBook|family|address|members|member}{xml:list:*} \stopxmlsetups \xmlregisterdocumentsetup{list}{xml:list:base} \startxmlsetups xml:list:addressBook \title{Address List} \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:list:family %% {\bf \xmlatt{#1}{surname} \xmldoifnotatt{#1, prefix, ''} {, \xmlatt{#1}{prefix}}} \crlf {\bf \xmlatt{#1}{surname}}\crlf \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:list:address \xmlatt{#1}{street} \xmlatt{#1}{housenumber}\crlf \xmlatt{#1}{postcode}\crlf \xmlatt{#1}{city}\crlf \xmlatt{#1}{telephone}\crlf \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:list:members \starttabulate[|l|l|l|l|] \xmlflush{#1} \stoptabulate \stopxmlsetups \startxmlsetups xml:list:member \NC \xmlatt{#1}{name} {\tfxx \xmlatt{#1}{maiden_name}} \NC \xmlatt{#1}{birthday} \NC \xmlatt{#1}{email} \NC \xmlatt{#1}{mobile} \NC\NR \stopxmlsetups \starttext \xmlprocessfile{list}{stooges.xml}{} \stoptext stooges.pdf Description: Adobe PDF document ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror) archive : https://github.com/contextgarden/context wiki : https://wiki.contextgarden.net ___