|
Subject: Re: [xsl] How to count the distinct values where elements with missing child are counted as one of the distinct values? From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 27 May 2022 15:09:45 -0000 |
> Use count(distinct-values(/test/row/string(transition)))
I would use the more obvious and self-explanatory:
let $test := /test/row
return
count(distinct-values($test/transition)) + 1[$test[not(transition)]]
If this XPath evaluation is initiated from an XSLT transformation and XSLT
1.0 compatibility set to true (Specifying version = "1.0" but using an XSLT
2.0 or later processor), one can use even:
count(distinct-values(/test/row/transition)) +
boolean(/test/row[not(transition)])
Thanks,
Dimitre
On Thu, May 26, 2022 at 7:33 AM Michael Kay mike@xxxxxxxxxxxx <
xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> Use count(distinct-values(/test/row/string(transition)))
>
> string() applied to an empty sequence returns the zero-length string,
> whereas atomization applied to an empty sequence returns an empty sequence.
>
> Michael Kay
> Saxonica
>
> > On 26 May 2022, at 15:08, Roger L Costello costello@xxxxxxxxx <
> xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > Hi Folks,
> >
> > The following XML document has two row elements with no transition
> element and two row elements with a transition element :
> >
> > <test>
> > <row>
> > </row>
> > <row>
> > </row>
> > <row>
> > <transition>ABC</transition>
> > </row>
> > <row>
> > <transition>DEF</transition>
> > </row>
> > </test>
> >
> > I want a count of the number of distinct transition values, where row
> elements with no transition element are counted as 1.
> >
> > So for the above XML document the count should return 3.
> >
> > This XPath seems to work:
> >
> > count(distinct-values(/test/row/transition)) +
> count(/test/row[not(transition)][1])
> >
> > But I am wondering if there is a better (simpler, less kludgy) XPath
> expression?
> >
> > /Roger
> >
> >
>
>
>
--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
To avoid situations in which you might make mistakes may be the
biggest mistake of all
------------------------------------
Quality means doing it right when no one is looking.
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
-------------------------------------
To achieve the impossible dream, try going to sleep.
-------------------------------------
Facts do not cease to exist because they are ignored.
-------------------------------------
Typing monkeys will write all Shakespeare's works in 200yrs.Will they write
all patents, too? :)
-------------------------------------
Sanity is madness put to good use.
-------------------------------------
I finally figured out the only reason to be alive is to enjoy it.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] How to count the distinct, Michael Kay mike@xxx | Thread | Re: [xsl] How to count the distinct, Michael Kay mike@xxx |
| Re: [xsl] Not able to render XML in, Michele R Combs mrro | Date | Re: [xsl] How to count the distinct, Michael Kay mike@xxx |
| Month |