xsl-list
[Top] [All Lists]

RE: [xsl] XSL: Build a dynamic HTML Select from a single Quantity value

2008-08-07 09:11:44

<xsl:for-each select="1 to Quantity">
  <option value="{.}"><xsl:value-of select="."/></Option>
</xsl:for-each>

This is XSLT 2.0 only.

Michael Kay
http://www.saxonica.com/

 

-----Original Message-----
From: Jimmy D [mailto:webnet02(_at_)yahoo(_dot_)com] 
Sent: 07 August 2008 16:56
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] XSL: Build a dynamic HTML Select from a single 
Quantity value

Hi,
 
I've searched the web and archives for the specifics on this 
process but haven't found a good match for what I am trying 
to accomplish.  
 
I have the following XML from a third party source I pull 
from the web to populate a web page on my site:
 
<?xml version="1.0" encoding="utf-8" ?>
<Products>
       <Data Count="2">
           <Item>
               <Product>Widget 1</Product>
               <Quantity>3</Quantity>
               <Price>10</Price>
           </Item>
           <Item>
               <Product>Widget 2</Product>
               <Quantity>2</Quantity>
               <Price>15</Price>
           </Item>
       </Data>
</Products>
 
In my style sheet I need to build a HTML drop-down with 
sequential option values equal to the number in <Quantity> 
like so.. Widget 1 <select name="Quantity">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>
 
Widget 2
<select name="Quantity">
    <option value="1">1</option>
    <option value="2">2</option>
</select>
I am somewhat new to writing style sheets but I am 
experienced in ASP / VBscript where I would handle this with 
a For / Next like:
<select name="Quantity">
   <% For count = 1 to Quantity
            response.write("<option value='" & count & "'>" & 
count & "</option>")
         Next %> </select>
 
However, I haven't figured out how to do this in my style 
sheet.  My XSL looks something like this at the moment:
 
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet 
version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
 <xsl:template match="/">
   <xsl:choose>
    <xsl:when test="Products/Data/Item">
        <table>
        <xsl:for-each select="Products/Data/Item">
            <tr>
                <td>
                <xsl:value-of select="Product" />
                </td>
                <td>
                <xsl:value-of select="Price" />
                </td>
                <td>Select the number you want to order:
                    <select name="Quantity">
                        <!-- Where I'm Stuck -->
                    </select>
                </td>
              </tr>
        </xsl:for-each>
        </table>
    </xsl:when>
    <xsl:otherwise>
    </xsl:otherwise>
   </xsl:choose>
 </xsl:template>
</xsl:stylesheet>
Thanks for your assistance!
Jim


      


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>