Re: [xsl] generate-d( ) not working

Subject: Re: [xsl] generate-d( ) not working
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Tue, 01 Jul 2003 17:42:36 -0400
John,

In your template

  <xsl:template match="//HSS">
    <xsl:for-each select=".">
                <a name="{generate-id(HSS)}">
                <xsl:value-of select="@name" /><br />
                <xsl:value-of select="@required" /></a><br />
    </xsl:for-each>
  </xsl:template>

the XPath in the expression "generate-id(HSS)" translates to "generate-id(child::HSS)". Since the HHS element that has been matched has no child HHS element, there's no node to get an ID for. Even if there were, it wouldn't be the right node.


Try "generate-id(.)", short for "generate-id(self::node())", or just "generate-id()", which defaults to this.

Same in the other template.

Why the for-each? It's doing nothing but change the context node to what it already is (again, self::node()).

Cheers,
Wendell



======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


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



Current Thread