xsl-list
[Top] [All Lists]

named template that returns xpath expression

2002-10-19 05:20:12
Working with conditional transformation of some sort of elements, i've tried
to devide a processing into to steps of transformation.

The input-tree is like:

<glossary>
  <glossentry>
    <glossterm>XML</glossterm>
    <glossdef>
      <paragraph>...</paragraph>
      <paragraph mode="note">...</paragraph>
    </glossdef>
  </glossentry>
</glossary>

In the first step the result tree should look like:

<div class="entry"><span class="term">XML</span>
  <p>...</p>
  <div class="note"><a href="/xpath-expression/to/this/element"></a></div>
</div>

The "/xpath-expression/to/this/element" then is passed to an second 
transformation
style that only processes this element from the input tree and nothing else.

so i played around with several test, at least with no success. My last idea
was:

   <xsl:template name="this">
     <!-- generates the xpath-expression that matches the node where "this" is 
called.
          this whould make the template be usable in many cases.
      -->
   </xsl:template>

   <xsl:template match="paragraph">
     <xsl:parameter name="location">
       <xsl:call-template name="this"/>
     </xsl:parameter>
     <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>

perhapes someone can give me a hint, how to solve this problem

(solutions are welcome as well :-) )

thanx in advance
--
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