Subject: RE: [xsl] Grouping into a table (for vertical alignment) From: "Daniel Joshua" <daniel.joshua@xxxxxxxxxxxx> Date: Wed, 26 May 2004 13:20:30 +0800 |
Thanks for your reply. >Is your problem harder than Yes it is. I do not want to have 2 separate tables (one for the 'input' and one for the 'password'), I want to use the a single table if both elements need tables, and not add a table if the element is a 'text'. And its need to be generic so that if I add in more 'input' or 'text' is will make tables accordingly. I try to be a bit more clear, I included the desired output this time. XML (Input): . . . <form> <name>form</name> <action>submit.do</action> <method>post</method> <content> <text> <value>Please enter your Name and Password.</value> <class>instruction</class> </text> <input> <name>username</name> <label>Name: </label> <value></value> <class>mandatory</class> </input> <password> <name>password</name> <label>Password :</label> <value></value> <class>mandatory</class> </password> <text> <value>All attempts are logged.</value> <class>warning</class> </text> </content> </form> . . . XHTML (Desired Output) . . . <form name="form" action="submit.do" method="post"> <div class="instruction">Please enter your Name and Password.</div> <table> <tr> <td>Name: </td> <td><input type="text" name="username" value="" class="mandatory"></input></td> </tr> <tr> <td>Password: </td> <td><input type="password" name="password" value="" class="mandatory"></input></td> </tr> <table> <div class="warning">All attempts are logged..</div> </form> . . . XSLT (which does not create the table): . . . <xsl:template match="form"> <form> <xsl:for-each select="name | action | method"> <xsl:attribute name="{name()}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:for-each> <xsl:apply-templates"/> </form> </xsl:template> <xsl:template match="text"> <div> <xsl:for-each select="class"> <xsl:attribute name="{name()}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:for-each> <xsl:value-of select="value"/> </div> </xsl:template> <xsl:template match="label"> <xsl:value-of select="."/> <xsl:text>: </xsl:text> </xsl:template> <xsl:template match="input"> <xsl:apply-templates select="label"/> <input> <xsl:attribute name="type"> <xsl:text>text</xsl:text> </xsl:attribute> <xsl:for-each select="name | value | class"> <xsl:attribute name="{name()}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:for-each> </input> </xsl:template> <xsl:template match="password"> <xsl:apply-templates select="label"/> <input> <xsl:attribute name="type"> <xsl:text>password</xsl:text> </xsl:attribute> <xsl:for-each select="name | value | class"> <xsl:attribute name="{name()}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:for-each> </input> </xsl:template> . . . Regards, Daniel -----Original Message----- From: Wendell Piez [mailto:wapiez@xxxxxxxxxxxxxxxx] Sent: Tuesday, 25 May, 2004 10:56 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] Grouping into a table (for vertical alignment) Daniel, Is your problem harder than <xsl:template match="input"> <table> <tr> <td> <xsl:apply-templates select="label"/> </td> <td> <input> <xsl:attribute name="type"> <xsl:text>text</xsl:text> </xsl:attribute> <xsl:for-each select="name | value | class"> <xsl:attribute name="{name()}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:for-each> </input> </td> </tr> </table> </xsl:template> ? If so, could you be more specific as to what results you want to get? Cheers, Wendell At 09:11 AM 5/24/2004, you wrote: >Hi, > >I am trying to make a generic XSLT for converting XML into XHTML. > >I want to put my output into a <table> for vertically aligning the 'label' >and 'input' fields.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Grouping into a table (fo, Wendell Piez | Thread | RE: [xsl] Grouping into a table (fo, Wendell Piez |
Re: [xsl] Conditional Grouping Prob, James A. Robinson | Date | RE: [xsl] Recursion Problem, Jarno.Elovirta |
Month |