[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: count number of <P>s
> 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
|
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
|