This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: keys and unique IDs


Ahhh... nevermind... I think I can do what I need with:

<xsl:template match="/">
    <style type="text/css">
        <xsl:apply-templates mode="x"/>
    </style>
    <xsl:apply-templates mode="y"/>

</xsl:template>

<xsl:template match="*" mode="x">
   <xsl:param name="x.oldpos"/>
   <xsl:variable name="pos" select="position()"/>
    <xsl:variable name="x.pos" select="concat($x.oldpos,$pos)"/>

     #<xsl:value-of select="concat(name(),$x.pos)"/> {yadayada}
     <xsl:apply-templates mode="x">
         <xsl:with-param name="x.oldpos" select="$x.pos"/>
     </xsl:apply-templates>
</xsl:template>

<xsl:template match="*" mode="y">
   <xsl:param name="y.oldpos"/>
    <xsl:variable name="pos" select="position()"/>
    <xsl:variable name="y.pos" select="concat($y.oldpos,$pos)"/>
    <div id="{concat(name(),$y.pos)}">
         whatever
         <xsl:apply-templates mode="y">
            <xsl:with-param name="y.oldpos" select="$y.pos"/>
         </xsl:apply-templates>
    </div>
</xsl:template>




----- Original Message -----
From: "Robert Koberg" <rob@koberg.com>
To: <xsl-list@lists.mulberrytech.com>
Sent: Monday, March 19, 2001 7:22 AM
Subject: keys and unique IDs


> Is there a way to generate unique IDs for each node in an XML document and
> then when you match that node can you retrieve the key's value (the UID)?
> For example:
>
> <xsl:key name="allnodes" match="*" use="generate-id()"/>
>
> <xsl:template match="/">
>     <style type="text/css">
>         <xsl:apply-templates mode="x"/>
>     </style>
>     <xsl:apply-templates mode="y"/>
> </xsl:template>
>
> <xsl:template match="*" mode="x">
>     <xsl:variable name="this.nodes.key" select="???"/>
>      #<xsl:value-of select="$this.nodes.key"/> {yadayada}
> </xsl:template>
>
> <xsl:template match="*" mode="y">
>     <xsl:variable name="this.nodes.key" select="???"/>
>     <div id="{$this.nodes.key}">
>          whatever
>     </div>
> </xsl:template>
>
> Thanks
>
>
>


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]