xsl-list
[Top] [All Lists]

RE: Contents of a <div> into an AVT?

2003-08-06 17:13:01
Hi.

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Kathy Burke
Sent: Wednesday, August 06, 2003 7:14 PM
To: 'xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com'
Subject: RE: [xsl] Contents of a <div> into an AVT?


Sorry, I didn't provide that info.  For this xml element:

<step>This is the first step.</step>


My template does the following:

(1) Creates an html table structure.

(2) In the first column, creates a button with an onclick 
event (which requires use of variables to pass querystring).

(3) Second column, apply xsl:number to the <step> which gives me: 
       1. This is the first step.

That onclick event for each <step>'s button needs the two 
variables ('the number', 'the text of the step'). I capture 
the 2nd var using {.}. but can't figure out how to get the 
"number" (1.2, 1.3, etc.).

***********************

If I may, here is the template for the step...the entire xsl 
is rather long.

<xsl:template match="step"> 
<table>
<tr>
<td align="center" valign="middle">

<input type="button" value="Anomaly" 
onclick="Javascript:Anomaly('{id}','{.}')"></input>

</td>   
<td>
<xsl:variable name="id">

<xsl:number level="multiple" count="step" format="1.1"/> 
</xsl:variable>

<div id="Step_{$id}">
<xsl:value-of select="$id"/>
</div>

This is a mixed issue, half javascript half xslt :)
First the javascript part:
If you have you id=Step_1.2, javascript will treat this as property '2' of
object 'Step_1'. so you'll have to change your id definition

The xslt part:
You define your <input> in the same way you define your <div>
<input .... Onclick="Javascript:Anomaly('{$id}','{.}')">

For this to work the definition of the variable id must be the first chilf
of <xsl:template>

So you'll need to have something like:
<xsl:template match="step"> 
 <xsl:variable name="id"><xsl:number level="multiple" count="step"
format="1.1"/></xsl:variable>
 <table>
  <tr>
   <td align="center" valign="middle">
   <input type="button" value="Anomaly"
onclick="Javascript:Anomaly('{$id}','{.}')"></input>
   </td>   
   <td>
   <div id="Step_{$id}">
    <xsl:value-of select="$id"/>
   </div>
   <xsl:apply-templates select="step"/>      
   </td>     
  </tr>    
 </table>   
</xsl:template>

For the id I would use generate-id() instead, like:
<xsl:template match="step"> 
 <table>
  <tr>
   <td align="center" valign="middle">
   <input type="button" value="Anomaly"
onclick="Javascript:Anomaly('{generate-id()}','{.}')"></input>
   </td>   
   <td>
   <div id="{generate-id()}">
    <xsl:number level="multiple" count="step" format="1.1"/>
   </div>
   <xsl:apply-templates select="step"/>      
   </td>     
  </tr>    
 </table>   
</xsl:template>

(...)

Hope this helps you

Regards,
Americo Albuquerque 


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