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
|