Subject: [xsl] Counting Word Occurences From: "Kirk V. Hastings" <kvh2n@xxxxxxxxxxxx> Date: Tue, 19 Dec 2000 11:19:19 -0500 |
In an attempt to implement simple keyword searching, I did the following to count the number of occurences of the user's keyword in the <abstract> element. What I would like to do now is count the number of times that the keyword occurs in the context node's child <abstract> as well as all descendant <div> element's <abstract> children. I was hoping it would be as simple as defining the variable "text" as "descendant-or-self::div/abstract", but that only gave me the count for the first <abstract> element. I think what I'm trying to do is concatenate the text of all the descendant <abstract> elements into a single string. Or am I? <doc> <div> <title></title> <abstract\>foo bar</abstract> <div> <title></title> <abstract\>foo bar</abstract> </div> </div> </doc> <xsl:param name="keyword" select="foo"/> <xsl:template match="div" mode="toc"> <xsl:variable name="text" select="div/abstract"/> <xsl:if test="contains($text, $keyword)"> <xsl:call-template name="count"> <xsl:with-param name="text" select="$text"/> <xsl:with-param name="keyword" select="$keyword"/> </xsl:call-template> </xsl:if> </xsl:template> <xsl:template name="count"> <xsl:param name="text"/> <xsl:param name="keyword"/> <xsl:choose> <xsl:when test="contains($text, $keyword)"> <xsl:variable name="occurence" select="substring-before($text, $keyword)"/> <xsl:variable name="remainder" select="substring-after($text, $keyword)"/> <xsl:variable name="total"> <xsl:call-template name="count"> <xsl:with-param name="text" select="$remainder"/> <xsl:with-param name="keyword" select="$keyword"/> </xsl:call-template> </xsl:variable> <xsl:value-of select="$total + '1'"/> </xsl:when> <xsl:otherwise>0</xsl:otherwise> </xsl:choose> </xsl:template> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Ann: Xsldoc - XSLT Source, Eric van der Vlist | Thread | Re: [xsl] Counting Word Occurences, David Carlisle |
Re: [xsl] select following-siblings, Fred Boon | Date | [xsl] Dynamic creation of frames & , Linda Santiago |
Month |