xsl-list
[Top] [All Lists]

RE: RE: XSL-List Digest V4 #1168

2003-03-19 17:56:10
Walter Crockett wrote:

      I'm updating an old stylesheet that still works, but it calls 
xmlns:xsl="http://www.w3.org/TR/WD-xsl"; instead of the modern version.

This seems to prevent me from using simple functions like position().

When I change to http://www.w3.org/1999/XSL/Transform, it 
breaks because it
uses the now-defunct xsl:eval.

<xsl:if test="@Level">  
     <xsl:eval>makeTreePath(this)</xsl:eval>
</xsl:if>

It needs this to make a nice tree in HTML:

 <xsl:script>
   <![CDATA[
      function makeTreePath(e)
      {
          var depthChar="|---";
          var result="";
          var i; 
          var j = e.getAttribute("Level");         

          for(i = 0;i < j;i++){
              result += depthChar;               
          }
          
          return result;
      } 
   ]]>
   </xsl:script>

This is a FAQ: http://www.dpawson.co.uk/xsl/sect2/repetition.html

Replace the javascript function with a named template like this:

<xsl:template name="makeTreePath">
  <xsl:param name="n"/>
  <xsl:if test="number($n) > 0">
    <xsl:text>|---</xsl:text>
    <xsl:call-template name="makeTreePath">
      <xsl:with-param name="n" select="number($n) - 1"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template>

and call it like this:

<xsl:if test="@Level">  
      <xsl:call-template name="makeTreePath">
                <xsl:with-param name="n" select="@Level"/>
        </xsl:call-template>
</xsl:if>

Cheers!

Con

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>