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
|