Re: [xsl] count in several document

Subject: Re: [xsl] count in several document
From: abbouh <abbouh@xxxxxxxxxxxxxxxxx>
Date: Mon, 23 Jun 2003 18:43:41 +0000
i use a template for counting the "ht" node,but the problem is when
i get the return of template to a variable,i have NaN?
this what i use:
...........................
<xsl:variable name="nb_ht">
<xsl:call-template name="test1">
<xsl:with-param name="total" select="0"/>
<xsl:with-param name="pchapmod" select="//chapmod[4]"/>
</xsl:call-template>
</xsl:variable>
..................................



<xsl:template name="test1">
<xsl:param name="total"/>
<xsl:param name="pchapmod" />
<xsl:choose>
<xsl:when test="boolean($pchapmod) and name($pchapmod)='chapmod'">
<xsl:variable name="ht_nb"
select="count(document(concat(string($pchapmod/attribute::docref),'.xml'))//ht)"/>

<xsl:value-of select="$ht_nb"/>
<xsl:text> </xsl:text>
<xsl:call-template name="test1">
<xsl:with-param name="total" select="$total + $ht_nb"/>
<xsl:with-param name="pchapmod"
select="$pchapmod/preceding::chapmod[position() = 1]"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$total"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>



David Carlisle a écrit :

> when you use a node set, such as //chapmod/attribute::docref in the
> argument of a function expecting a string, or explictly coerce it to a
> string using string() then XPath1 _always_ takes the string value of the
> first node in the set in document order, and discards all the rest.
>
> If your source file had the full filename
>
> <chapmod docref="document1.xml" lang="FR"/>
> ...
>
> then you would be in much better shape as you could go
> select="count(document(//chapmod/@docref)//ht)"
>
> Otherwise your simplest solution is probably to make one pass to make a
> document of that form just using an xml-xml transformation to add .xml
> to the filenames, then make a second pass that does the above.
>
> Otherwise you'll have to do a recursive template that does the addition
> by hand. That isn't hard but changing the input document is easier, if
> that is an option.
>
> David
>
> ________________________________________________________________________
> This e-mail has been scanned for all viruses by Star Internet. The
> service is powered by MessageLabs. For more information on a proactive
> anti-virus service working around the clock, around the globe, visit:
> http://www.star.net.uk
> ________________________________________________________________________
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread