|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: how to get total string-length()
> -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of J.Pietschmann > Sent: Thursday, August 01, 2002 3:46 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: how to get total string-length() > > > Matthew L. Avizinis wrote: > > Hello all, > > If I have the following snippet: > > > > <fo:block margin-right="{concat(NNN*1.5),'mm')}"> > > --------------------------------^^^ > > <xsl:call-template name="process-nodes"/> > > <xsl:if test="not(@no-pg-num)"> > > <fo:leader leader-pattern="dots" leader-pattern-width="2.0mm" > > leader-alignment="reference-area"/> > > </xsl:if> > > <xsl:for-each > > select="document(concat($libname,'/index.xml'))//index/index-term[@id = > > $primary]"> > > <xsl:value-of select="."/><xsl:if test="position() != > > last()">, </xsl:if> > > </xsl:for-each> > > </fo:block> > > > > In the for-each line I grab each index-term that has an id that > matches the > > value in $primary. Thus I could have a line like > > the index entry..........123, 234, 345 > > > > What I want to be able to do is, using the example in the line above, > > calculate the number of characters in "123, 234, 345" and be > able to insert > > it in the NNN location in the block margin-right location. > Obviously I need > > to figure this out outside/before the block, but howto, that's > the question. > > This appears to be really easy: put it into a variable > and use string-length: > > <xsl:variable name="page-list"> > <xsl:for-each > select="document(concat($libname, > '/index.xml'))//index/index-term[@id = $primary]"> > <xsl:value-of select="."/><xsl:if test="position() != > last()">, </xsl:if> > </xsl:for-each> > </xsl:variable> > > > <fo:block margin-right="{concat(string-length($page-list)*1.5),'mm')}"> > <xsl:call-template name="process-nodes"/> > <xsl:if test="not(@no-pg-num)"> > <fo:leader leader-pattern="dots" leader-pattern-width="2.0mm" > leader-alignment="reference-area"/> > </xsl:if> > <xsl:value-of select="$page-list"/> > </fo:block> > > If you have any markup in the page number list, like fo:basic-links, > use xsl:copy-of instead of xsl:value-of. > > J.Pietschmann > > > 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
|

Cart








