Subject: Re: [xsl] Problems copying elements recursively. From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Mon, 10 Feb 2003 10:00:09 +0000 |
Dimitre wrote: > "Imrran Wahid" <devguy2003@xxxxxxxxx> wrote in message > news:20030209234334.51979.qmail@xxxxxxxxxxxxxxxxxxxxxxxxx >> Pardon me for asking what may be a simple question, >> but I am not very well versed in xsl. How do I >> translate the count to number of spaces( )? > > The simplest (to understand) way is to have an xsl:variable > containing a sufficiently long string of spaces. Then take the exact > number of spaces using the substring() function. > > Another way (when one doesn't know the maximum possible number of > spaces that will be needed) is to use a recursive named template -- > e.g. one from exslt, or this one: > > http://sources.redhat.com/ml/xsl-list/2001-07/msg01040.html > > Or use the "iter" template from the FXSL library. > > The last solution is the most generic and can be used to implement > any iteration of the type "Do something N times". Just to add to Dimitre's suggestion: since Imrran is counting ancestors to work out how many non-breaking spaces to add, it would be a good idea to use one of the above methods to create an $indent number of spaces (e.g. in an $indent-spaces global variable), and then use xsl:for-each to iterate over the ancestors to multiply that number of non-breaking spaces: <xsl:for-each select="ancestor::*"> <xsl:value-of select="$indent-spaces" /> </xsl:for-each> Another method that I use when formatting a tree is to pass down the previous indent as a parameter from parent to child, adding an indent on each step. Something like: <xsl:template match="*"> <xsl:param name="indent" /> ... <xsl:apply-templates> <xsl:with-param name="indent" select="concat($indent, $indent-spaces)" /> </xsl:apply-templates> ... </xsl:template> Again, the $indent-spaces that you add to the indent at each level may need to be constructed dynamically from a number using one of Dimitre's suggestions above. Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Problems copying elements, Dimitre Novatchev | Thread | Re: [xsl] Problems copying elements, Imrran Wahid |
Re: [xsl] XSLT Sort and choose last, Jeni Tennison | Date | RE: [xsl] preceding-sibling inside , Michael Kay |
Month |