Re: Absolute-path/index challenge

Subject: Re: Absolute-path/index challenge
From: Steve Tinney <stinney@xxxxxxxxxxxxx>
Date: Thu, 20 Jan 2000 21:37:25 -0500
Unless I'm missing something, this is not so hard, is it?  I added an
attribute to your tree to give me something to activate on.

tree.xml:
<A>
  <B>
    <C/>
  </B>
  <B>
    <C/>
    <C activate="yes"/><!--call template with current() here -->
  </B>
  <B>
  </B>
</A>

showpath.xsl:
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

<xsl:output method="text"/>

<xsl:template match="*">
  <xsl:if test="./@activate='yes'">
    <xsl:for-each select="ancestor-or-self::*">
      <xsl:call-template name="print-step"/>
    </xsl:for-each>
  </xsl:if>
  <xsl:apply-templates select="*"/>
</xsl:template>

<xsl:template name="print-step">
  <xsl:value-of select="name()"/>
  <xsl:text>:</xsl:text>
  <xsl:value-of select="1+count(preceding-sibling::*)"/>
  <xsl:text>.</xsl:text>
</xsl:template>
</xsl:stylesheet>

Result:
A:1.B:2.C:2.

 Steve

Thomas E Enebo wrote:
> 
> As an extension of the position() of parent question from digest 480,
> I have a challenge.  How can a template be created, such that it will
> print out the complete path of current node from the root?  As an
> example:
> 
> <A>
>   <B>
>     <C/>
>   </B>
>   <B>
>     <C/>
>     <C/> <--- calling a template with current() here...
>   </B>
>   <B>
>   </B>
> </A>
> 
> will yield
> 
> A:1.B:2.C:2
> 
> Where the first part is the element name and the second part is it's
> relative position with respect to all other nodes at the same level.
> 
> I know I would need to create a named template that recurses passing
> the parent to next invocation of template.  I also know the end case
> is when the current node is the root.
> 
> To print the index I think I would use David Carlisles comment on
> position
> thread yesterday..
> 
>   <xsl:value-of select="1+count(../preceding-sibling::*)"/>
> 
> Anyone?
> 
> -Tom
> 
> --
> +--------http://www.tc.umn.edu/~enebo --------+-mailto:enebo@xxxxxxxxxx -+
> | Thomas E Enebo, Friend of the University    | ???????????????????????? |
> | Phone: (612) 237-4607  Fax: (???) ???-????  | ???????????????????????? |
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

-- 
----------------------------------------------------------------------
Steve Tinney                                        Babylonian Section
                                 *   University of Pennsylvania Museum
stinney@xxxxxxxxxxxxx                          Phila, PA. 215-898-4047


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


Current Thread