xsl-list
[Top] [All Lists]

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

2022-05-27 00:27:45
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(_at_)mitre(_dot_)org <
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> 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
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>