xsl-list
[Top] [All Lists]

Re: named template that returns xpath expression

2002-10-21 09:57:38
Eike Jordan wrote:
Thanks a lot for your suggestion.


   <xsl:template name="this">

     <xsl:for-each select="ancestor-or-self::*">
<xsl:text>/</xsl:text><xsl:value-of select="name()"/>[<xsl:number/>]<xsl:text/>
     </xsl:for-each>

   </xsl:template>

  <xsl:template match="paragraph">
    <xsl:variable name="location">
      <xsl:call-template name="this"/>
    </xsl:variable>
     <xsl:choose>
       <xsl:when test="@mode='note'">
         <div class="note">
           <a>
             <xsl:attribute name="href">
               <xsl:value-of select="$location"/>
             </xsl:attribute>
           </a>
         </div>
       </xsl:when>
       <xsl:otherwise>
         <p><xsl:apply-templates /></p>
       </xsl:otherwise>
     </xsl:choose>
   </xsl:template>

works as desired.


But not with Xalan :-(. Is there anybody who knows the reason for
this?

Saxon (6.3) output:

<div class="note">
  <a href="/glossary[1]/glossentry[1]/glossdef[1]/paragraph[2]">paragraph</a>
</div>

Xalan (2.1.0) output

<div class="note">
  <a href="/glossary[]/glossentry[]/glossdef[]/paragraph[]">paragraph</a>
</div>

--
Eike Jordan  <jordan(_at_)fiz-chemie(_dot_)de>

| FIZ CHEMIE BERLIN
| Franklin Str. 11               ------    ,__o
| 10587 Berlin                  ------   _-\_<,
|                              ------   (+)/'(+)
| Tel. : 0049-30-39977 214


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