This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: keys and unique IDs
- To: xsl-list at lists dot mulberrytech dot com
- Subject: [xsl] Re: keys and unique IDs
- From: Robert Koberg <rob at koberg dot com>
- Date: Mon, 19 Mar 2001 07:52:53 -0800
- Reply-To: xsl-list at lists dot mulberrytech dot com
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