The three files given below must be kept in same folder. The file controls.xml must be opened in browser.
The output will be the form generated through xslt. When user clicks on submit the file process.htm retrieves the querystring portion.
XML File : controls.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Controls.xsl"?>
<FORM NAME="REGISTRTION" ACTION="process.htm" METHOD="GET">
<CONTROL NAME="txtLoginName" LABEL="Login Name" TYPE="text" VALUE="" BREAK="Yes"/>
<CONTROL NAME="txtPassword" LABEL="Password" TYPE="password" VALUE="" BREAK="Yes"/>
<CONTROL NAME="rdoGender" LABEL="Male" TYPE="radio" VALUE="M"/>
<CONTROL NAME="rdoGender" LABEL="Female" TYPE="radio" VALUE="F" BREAK="Yes"/>
<CONTROL NAME="optOccupation" LABEL="Occupation" TYPE="LIST" VALUE="" BREAK="Yes">
<LISTITEM VALUE="DR" TEXT="DOCTOR"/>
<LISTITEM VALUE="ER" TEXT="ENGINEER"/>
<LISTITEM VALUE="IT" TEXT="IT PROFESSIONAL"/>
<LISTITEM VALUE="OT" TEXT="OTHERS"/>
</CONTROL>
<CONTROL BREAK="Yes"/>
<CONTROL NAME="cmdSubmit" LABEL="Submit Form" TYPE="SUBMIT" VALUE="SUBMIT"/>
<CONTROL NAME="cmdReset" LABEL="Reset Form" TYPE="RESET" VALUE="CLEAR" BREAK="Yes"/>
</FORM>
xsl file : controls.xsl
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="*">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="/">
<FORM>
<xsl:attribute name="NAME"><xsl:value-of select="FORM/@NAME"/></xsl:attribute>
<xsl:attribute name="ACTION"><xsl:value-of select="FORM/@ACTION"/></xsl:attribute>
<xsl:attribute name="METHOD"><xsl:value-of select="FORM/@METHOD"/></xsl:attribute>
<xsl:for-each select="FORM/CONTROL">
<SPAN style="font-family:Tahoma;margin-right:10"><xsl:value-of select="@LABEL"/></SPAN>
<xsl:choose>
<xsl:when test="@TYPE [. = 'LIST']">
<SELECT style="font-weight:bold;font-family:tahoma;font-size:11">
<xsl:attribute name="NAME"><xsl:value-of select="@NAME"/></xsl:attribute>
<xsl:for-each select="LISTITEM ">
<OPTION>
<xsl:attribute name="VALUE"><xsl:value-of select="@VALUE"/></xsl:attribute>
<xsl:value-of select="@TEXT"/>
</OPTION>
</xsl:for-each>
</SELECT>
</xsl:when>
<xsl:otherwise>
<xsl:if test="@TYPE [. != '']">
<INPUT style="margin-right:20">
<xsl:attribute name="NAME"><xsl:value-of select="@NAME"/></xsl:attribute>
<xsl:attribute name="TYPE"><xsl:value-of select="@TYPE"/></xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="@VALUE"/></xsl:attribute>
</INPUT>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="@BREAK [. = 'Yes']">
<BR/>
</xsl:if>
</xsl:for-each>
</FORM>
</xsl:template>
</xsl:stylesheet>
Bookmarks