[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: count in several document
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|