Re: [xsl] creating of id and refid

Subject: Re: [xsl] creating of id and refid
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Fri, 24 Apr 2009 14:05:25 +0200
Ganesh Babu N wrote:

My XSL is like below:

<xsl:template match="grant-sponsor">
		<grant-sponsor id="grs{position() - 1}">
			<xsl:apply-templates/>
		</grant-sponsor>
	</xsl:template>
	<xsl:template match="grant-number">
		<grant-number refid="{preceding-sibling::grant-sponsor/@id}">
			<xsl:apply-templates/>
		</grant-number>
	</xsl:template>

I am getting the empty refid.

Well the stylesheet operates on the original source so @id does not exist as you create it only on the result element.


> Please suggest how to solve this problem.

If you can live with the XSLT processor generating ids then use

  <xsl:template match="grant-sponsor">
    <grant-sponsor id="{generate-id()}">
      <xsl:apply-templates/>
    </grant-sponsor>
  </xsl:template>

<xsl:template match="grant-number">
<grant-number refid="{generate-id(preceding-sibling::grant-sponsor[1])}">
<xsl:apply-templates/>
</grant-number>
</xsl:template>



--


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

Current Thread