xsl-list
[Top] [All Lists]

Re: [xsl] generating unique ids

2009-11-03 13:47:25
a kusa wrote:

I am using generate-id() function to generate unique ids through out
my document. But I am having a problem here.

My output looks like this:
<root>

<step1 id="idstep_2_566">

.....
<step1>
<step1 id="idstep_2_566">



</step1>

</root>

Now in  my xslt for template 'step1' I have a generate-id() function.
But for some reason it generates the same id for 'step1' elements.
How do I prevent it from generating the same id that was generated for
the previous step1 node? Do I have to use <xsl:key>?

generate-id() will give a unique id for the context node. If that is the same both times your template is processed then you will get the same id.
So generate-id() is useful if you have e.g.

<list>
  <foo>...</foo>
  <foo>...</foo>
  <foo>...</foo>
</list>

in your input and then write a template for 'foo' elements in the stylesheet
  <xsl:template match="foo">
    <li id="{generate-id()}">
      <xsl:apply-templates/>
    </li>
  </xsl:template>


--

        Martin Honnen
        http://msmvps.com/blogs/martin_honnen/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

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