Re: [xsl] How to count the distinct values where elements with missing child are counted as one of the distinct values?

Subject: Re: [xsl] How to count the distinct values where elements with missing child are counted as one of the distinct values?
From: "Mukul Gandhi mukulg@xxxxxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 27 May 2022 05:27:33 -0000
Hi Roger,
    How about below mentioned solution, for your requirements.

XML document : provided XML document

XSLT stylesheet,

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                         version="3.0">

   <xsl:output method="text"/>

   <xsl:template match="/">
      <xsl:value-of select="count(distinct-values(test/row/transition)) +
                                                        (if (some $row in
test/row satisfies not($row/transition)) then 1 else 0)"/>
   </xsl:template>

</xsl:stylesheet>

On Thu, May 26, 2022 at 7:38 PM 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?
>


-- 
Regards,
Mukul Gandhi

Current Thread