[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Re: keys and unique IDs


Subject: [xsl] Re: keys and unique IDs
From: Robert Koberg <rob@xxxxxxxxxx>
Date: Mon, 19 Mar 2001 08:49:19 -0800

no, using position() will not do what I need.

I would like to ask my first question again, that is:
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)?

(the example is the post from 7:22, not 7:52)


----- Original Message -----
From: "Robert Koberg" <rob@xxxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Monday, March 19, 2001 7:52 AM
Subject: 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@xxxxxxxxxx>
> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
> 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



Current Thread
Keywords
xml