Subject: Re: [xsl] Applying Templates Up To The Node That Contains The nth Descendant Character From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx> Date: Tue, 23 Dec 2008 13:53:01 +0530 |
I thought of following (a 2.0 solution). <xsl:template match="body"> <body> <xsl:apply-templates select="p[1]" /> </body> </xsl:template> <xsl:template match="p"> <xsl:variable name="x" select="string-length(string-join(preceding-sibling::p, ''))" /> <xsl:variable name="y" select="string-length(.)" /> <xsl:if test="$x < 1000"> <xsl:copy-of select="." /> </xsl:if> <xsl:if test="($x + $y) < 1000"> <xsl:apply-templates select="following-sibling::p[1]" /> </xsl:if> </xsl:template> This is not tested. On Tue, Dec 23, 2008 at 11:58 AM, Jeff Sese <jeferson.sese@xxxxxxxxxxxx> wrote: > Hi, > > I have a book structure mark-up and I'm trying to get an extract of the book > contents to represent a preview. However, I only want to get the contents > upto the node that contains the nth descendant character of the book body. > How can I do this? > > I have: > <book> > <body> > <p>some text</p> > <p>some text</p> > ... > <p>some text, here is the 1,000th character, some more > text</p> > <p>some text</p> > </body> > </book> > > I want my output to be all the descendant::p of body but only upto the p > that contains the 1000th character. > > Thanks in advance, > > -- Jeff -- Regards, Mukul Gandhi
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Applying Templates Up To , Evan Lenz | Thread | Re: [xsl] Applying Templates Up To , Jeff Sese |
Re: [xsl] Applying Templates Up To , Evan Lenz | Date | Re: [xsl] Applying Templates Up To , Jeff Sese |
Month |