Subject: Re: [xsl] count number of <P>s From: "Joerg Heinicke" <joerg.heinicke@xxxxxx> Date: Fri, 5 Apr 2002 08:41:42 +0200 |
> I'm trying to count the number of <P> tags withing a <![CDATA[ section. > > Doing this: > <xsl:value-of select="string-length(.) - string-length(translate(., > '<P>', ''))"/> > > almost gets me there -- but counts each instance of <, P, and > > separately. Is there a way of searching for an *entire* string, > rather than individual characters? Hello Dan, my approach is to use a recursive template: <xsl:template match="element-with-cdata"> <xsl:call-template name="string-count"> <xsl:with-param name="string" select="."/> <xsl:with-param name="string-to-count" select="'<P>'"/> </xsl:call-template> </xsl:template> <xsl:template name="string-count"> <xsl:param name="string"/> <xsl:param name="string-to-count"/> <xsl:param name="count" select="0"/> <xsl:choose> <xsl:when test="contains($string, $string-to-count)"> <xsl:call-template name="string-count"> <xsl:with-param name="string" select="substring-after($string, $string-to-count)"/> <xsl:with-param name="string-to-count" select="$string-to-count"/> <xsl:with-param name="count" select="$count + 1"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$count"/> </xsl:otherwise> </xsl:choose> </xsl:template> (untested) This template tests whether the string contains the string to count. When this is true, the string is shortened til the first occurence of the string-to-count, the counter is incremented and the template calls itself again. If string-to-count is not more contained in string then the value of the count will be returned. But a question I would ask earlier: Do you really need CDATA? Why not using "normal" XML? If it is poor HTML, you can use Tidy to transform it to XHTML/XML. Then counting nodes would be much easier than string manipulation. Regards, Joerg XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] count number of <P>s, Dan Cederholm | Thread | [xsl] Java Extension returning <>, Venkateshwar Bommine |
RE: [xsl] xsl:document not regonise, Jarno . Elovirta | Date | Re: [xsl] passing parameters from o, Joerg Heinicke |
Month |