[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Dropdown
This is my template. I'm trying to generate input tags based on the type read from the xml file. Thanks <xsl:template match="csd"> <xsl:for-each select="sd[count(. | key('specs_key', @Name)[1])=1]"> <xsl:if test="@Type = 'DropDown'"> <select name="Name"> <option value="-">--Select Name--</option> </xsl:if> <xsl:for-each select="key('specs_key', @Name)"> <xsl:choose> <xsl:when test="@Type = 'DropDown'"> <xsl:element name="option"> <xsl:attribute name="value"><xsl:value-of select="@Val"/></xsl:attribute> <xsl:value-of select="@Val"/> </xsl:element> </xsl:when> <xsl:when test="@Type = 'CheckBox'"> <xsl:element name="input"> <xsl:attribute name="type">checkbox</xsl:attribute> <xsl:attribute name="id"><xsl:value-of select="@DetailId"/></xsl:attribute> </xsl:element> </xsl:when> <xsl:when test="@Type = 'Radio'"> <xsl:element name="input"> <xsl:attribute name="type">radio</xsl:attribute> <xsl:attribute name="id"><xsl:value-of select="@DetailId"/></xsl:attribute> <xsl:value-of select="@Val"/>  </xsl:element> </xsl:when> <xsl:when test="@Type = 'Free Form Text'"> <xsl:value-of select="@Val"/> </xsl:when> </xsl:choose> </xsl:for-each> <xsl:if test="@Type = 'DropDown'"> </select> </xsl:if> </xsl:for-each> </xsl:template> --- "Passin, Tom" <tpassin@xxxxxxxxxxxx> wrote: > [ Juan Carlos Gonzalez] > > > > I'm trying to create a drop down list box > dynamically, > > but I'm getting an error message cause the > "select" > > tag is not being closed within the "if" tag. I > have > > tried replacing the < and > sign with the < and > > > but it's still not working. Any ideas? > > > > <xsl:if test="some condition"> > > <select name="cat"> > > </xsl:if> > > > > ...the folowing template will create the options > tag > > amoung other things ... > > > > <xsl:apply-templates select="cat"/> > > > > <xsl:if test="some condition"> > > </select> > > </xsl:if> > > You must complete and close the select element > within the xsl:if > element. Remember that the stylesheet has to be > well-formed xml. If > you think that you need to do something else, you > have not understood > your problem thoroughly enough yet. If you explain > what you really wish > to accomplish, we will be able to help you with it. > > For example, if you want to create a select element, > then you surely > will want to create options inside it. If you want > to create the select > list only if there are any cat elements, and have > one option per cat, > then you could write (assuming that the "cat" > element contains the name > of the cat as character data) > > <xsl:if test='cat'> <!-- executed if there are any > "cat" child elements > --> > <select name='cat'> > <xsl:for-each select='cat'> > <option value='{.}'><xsl:value-of > select='.'/></option> > </xsl:for-each> > </select> > </xsl:if> > > If you specify an xsl:output method of 'html', the > output will be in > ordinary html (rather than in xml), and the options > will come out > looking like normal html options: > > <option value='Mary'>Mary > > You could also use apply-templates instead of the > for-each, which might > be better if you have more complex processing to do > in constructing the > options. In this case, you would build the options > in the template for > "cat" rather than as shown here. > > Cheers, > > Tom P > > XSL-List info and archive: > http://www.mulberrytech.com/xsl/xsl-list > __________________________________________________ Do you Yahoo!? Y! Web Hosting - Let the expert host your web site http://webhosting.yahoo.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|