|
|
Setting the XSl Variable
|
|
stylesheet 1 and stylesheet 3 shows the different ways of setting an
xsl:variable, XSLT stylesheet 2 and XSLT stylesheet 4 of setting xsl:param.
|
XML Source
<source>
<chapter>Chapter A</chapter>
<chapter>Chapter B</chapter>
<chapter>Chapter C</chapter>
<chapter>Chapter D</chapter>
</source>
|
Output 1
<TABLE>
<TR>
<TD>Chapter A (1/4)</TD>
</TR>
<TR>
<TD>Chapter B (2/4)</TD>
</TR>
<TR>
<TD>Chapter C (3/4)</TD>
</TR>
<TR>
<TD>Chapter D (4/4)</TD>
</TR>
</TABLE>
|
|
XSL stylesheet 1
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:variable name="totalChapters">
<xsl:value-of select="count(//chapter)"/>
</xsl:variable>
<xsl:template match="/">
<TABLE>
<xsl:for-each select="//chapter">
<TR>
<TD>
<xsl:value-of select="."/>
<xsl:text> (</xsl:text>
<xsl:value-of select="position()"/>
<xsl:text>/</xsl:text>
<xsl:value-of select="$totalChapters"/>
<xsl:text>)</xsl:text>
</TD>
</TR>
</xsl:for-each>
</TABLE>
</xsl:template>
</xsl:stylesheet>
|
|
XML Source
<source>
<chapter>Chapter A</chapter>
<chapter>Chapter B</chapter>
<chapter>Chapter C</chapter>
<chapter>Chapter D</chapter>
</source>
|
Output 2
<TABLE>
<TR>
<TD>Chapter A (1/4)</TD>
</TR>
<TR>
<TD>Chapter B (2/4)</TD>
</TR>
<TR>
<TD>Chapter C (3/4)</TD>
</TR>
<TR>
<TD>Chapter D (4/4)</TD>
</TR>
</TABLE>
|
|
XSL stylesheet 2
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:param name="totalChapters">
<xsl:value-of select="count(//chapter)"/>
</xsl:param>
<xsl:template match="/">
<TABLE>
<xsl:for-each select="//chapter">
<TR>
<TD>
<xsl:value-of select="."/>
<xsl:text> (</xsl:text>
<xsl:value-of select="position()"/>
<xsl:text>/</xsl:text>
<xsl:value-of select="$totalChapters"/>
<xsl:text>)</xsl:text>
</TD>
</TR>
</xsl:for-each>
</TABLE>
</xsl:template>
</xsl:stylesheet>
|
|
XML Source
<source>
<chapter>Chapter A</chapter>
<chapter>Chapter B</chapter>
<chapter>Chapter C</chapter>
<chapter>Chapter D</chapter>
</source>
|
Output 3
<TABLE>
<TR>
<TD>Chapter A (1/4)</TD>
</TR>
<TR>
<TD>Chapter B (2/4)</TD>
</TR>
<TR>
<TD>Chapter C (3/4)</TD>
</TR>
<TR>
<TD>Chapter D (4/4)</TD>
</TR>
</TABLE>
|
|
XSL stylesheet 3
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:variable name="totalChapters" select="count(//chapter)"/>
<xsl:template match="/">
<TABLE>
<xsl:for-each select="//chapter">
<TR>
<TD>
<xsl:value-of select="."/>
<xsl:text> (</xsl:text>
<xsl:value-of select="position()"/>
<xsl:text>/</xsl:text>
<xsl:value-of select="$totalChapters"/>
<xsl:text>)</xsl:text>
</TD>
</TR>
</xsl:for-each>
</TABLE>
</xsl:template>
</xsl:stylesheet>
|
|
XML Source
<source>
<chapter>Chapter A</chapter>
<chapter>Chapter B</chapter>
<chapter>Chapter C</chapter>
<chapter>Chapter D</chapter>
</source>
|
OutPut 4
<TABLE>
<TR>
<TD>Chapter A (1/4)</TD>
</TR>
<TR>
<TD>Chapter B (2/4)</TD>
</TR>
<TR>
<TD>Chapter C (3/4)</TD>
</TR>
<TR>
<TD>Chapter D (4/4)</TD>
</TR>
</TABLE>
|
|
XSL stylesheet 4
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:param name="totalChapters" select="count(//chapter)"/>
<xsl:template match="/">
<TABLE>
<xsl:for-each select="//chapter">
<TR>
<TD>
<xsl:value-of select="."/>
<xsl:text> (</xsl:text>
<xsl:value-of select="position()"/>
<xsl:text>/</xsl:text>
<xsl:value-of select="$totalChapters"/>
<xsl:text>)</xsl:text>
</TD>
</TR>
</xsl:for-each>
</TABLE>
</xsl:template>
</xsl:stylesheet>
|
|
|
Variables with same Name
|
|
Stylesheet can do have several variables with the same name. The XSL stylesheet 1
demonstrates how to recover value of the global variable which has same
name as that of the local one. Value of the local variable is bounded to the xsl:when
element. The rest of the template therefore sees only a global variable.
|
XML Source
<source>
<chapter>Chapter A</chapter>
<chapter>Chapter B</chapter>
<chapter>Chapter C</chapter>
<chapter>Chapter D</chapter>
</source>
|
Output
<TABLE>
<TR>
<TD>First chapter : Chapter A</TD>
</TR>
<TR>
<TD>Chapter : Chapter B</TD>
</TR>
<TR>
<TD>Chapter : Chapter C</TD>
</TR>
<TR>
<TD>Last chapter : Chapter D</TD>
</TR>
</TABLE>
|
|
XSL stylesheet
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:variable name="text">Chapter</xsl:variable>
<xsl:template match="/">
<TABLE>
<xsl:for-each select="//chapter">
<TR>
<TD>
<xsl:variable name="text">
<xsl:choose>
<xsl:when test="position() = 1">First chapter</xsl:when>
<xsl:when test="position()=last()">Last chapter</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:value-of select="$text"/>
<xsl:text> : </xsl:text>
<xsl:value-of select="."/>
</TD>
</TR>
</xsl:for-each>
</TABLE>
</xsl:template>
</xsl:stylesheet>
|
|
|
XSL With-Param Element
|
|
Parameters for the template can be passed with an xsl:with-param element. If a template
contains the xsl:param element having same name as that of an name attribute of
xsl:with-param, this value is been used. The XSL stylesheet 1 shows the typical example.
If you do want to pass the variable, you should have to define this variable with the
xsl:param element. Look at XSL stylesheet 2 for the wrong approach.
|
XML Source
<source>
<number>1</number>
<number>3</number>
<number>4</number>
<number>17</number>
<number>8</number>
</source>
|
Output
<TABLE>
<TR>
<TH>1 (odd)</TH>
</TR>
<TR>
<TH>3 (odd)</TH>
</TR>
<TR>
<TH>4 (even)</TH>
</TR>
<TR>
<TH>17 (odd)</TH>
</TR>
<TR>
<TH>8 (even)</TH>
</TR>
</TABLE>
|
|
XSL stylesheet 1
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="/">
<TABLE>
<xsl:for-each select="//number">
<TR>
<TH>
<xsl:choose>
<xsl:when test="text() mod 2">
<xsl:apply-templates select=".">
<xsl:with-param name="type">odd</xsl:with-param>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="."/>
</xsl:otherwise>
</xsl:choose>
</TH>
</TR>
</xsl:for-each>
</TABLE>
</xsl:template>
<xsl:template match="number">
<xsl:param name="type">even</xsl:param>
<xsl:value-of select="."/>
<xsl:text> (</xsl:text>
<xsl:value-of select="$type"/>
<xsl:text>)</xsl:text>
</xsl:template>
</xsl:stylesheet>
|
XSL stylesheet 2
XSLT stylesheet
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="/">
<TABLE>
<xsl:for-each select="//number">
<TR>
<TH>
<xsl:choose>
<xsl:when test="text() mod 2">
<xsl:apply-templates select=".">
<xsl:with-param name="type">odd</xsl:with-param>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="."/>
</xsl:otherwise>
</xsl:choose>
</TH>
</TR>
</xsl:for-each>
</TABLE>
</xsl:template>
<xsl:template match="number">
<xsl:variable name="type">even</xsl:variable>
<xsl:value-of select="."/>
<xsl:text> (</xsl:text>
<xsl:value-of select="$type"/>
<xsl:text>)</xsl:text>
</xsl:template>
</xsl:stylesheet>
|
|
|
setting xsl:variable,
|
|
The variable can hold result tree fragment. Operations that are permitted on the result
tree fragment are the subset of those permitted on the node-set. The Operation is
been permitted on result tree fragment only if that operation would have to be permitted
on the string, Operation on string may involve first converting a string to the
number or the boolean. In particular, it is not been permitted to use " /, //, and []"
operators on the result tree fragments. When the permitted operation is been performed
on the result tree fragment, it is been performed exactly in the way as it would be
on a equivalent node-set.
|
XML Source
<source>
<TABLE border="1">
<TR>
<TD>AAA</TD>
<TD>BBB</TD>
</TR>
<TR>
<TD>aaa</TD>
<TD>bbb</TD>
</TR>
</TABLE>
<TABLE border="1">
<TR>
<TD>1111111</TD>
</TR>
<TR>
<TD>22222222</TD>
</TR>
</TABLE>
</source>
|
Output
<TABLE border="1">
<TR>
<TD>1111111</TD>
</TR>
<TR>
<TD>22222222</TD>
</TR>
</TABLE>
<TABLE border="1">
<TR>
<TD>AAA</TD>
<TD>BBB</TD>
</TR>
<TR>
<TD>aaa</TD>
<TD>bbb</TD>
</TR>
</TABLE>
<TABLE border="1">
<TR>
<TD>1111111</TD>
</TR>
<TR>
<TD>22222222</TD>
</TR>
</TABLE>
|
|
XSL stylesheet
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:variable name="A1">
<xsl:copy-of select="//TABLE[1]"/>
</xsl:variable>
<xsl:variable name="A2">
<xsl:copy-of select="//TABLE[2]"/>
</xsl:variable>
<xsl:template match="/">
<xsl:copy-of select="$A2"/>
<xsl:copy-of select="$A1"/>
<xsl:copy-of select="$A2"/>
</xsl:template>
</xsl:stylesheet>
|
|
Share And Enjoy:These icons link to social bookmarking sites where readers can share and discover new web pages.
Keywords XSL Variables, XSL Variables, xslt variables, xsl variable, xslt variable, xsl for each,
xsl value of, asp net variables, asp net xsl, xpath variable, variables in xsl,
variable in xslt, variables in xslt, variable in xsl, variables xsl, xsl variable scope,
xsl set variable, xslt global variable, xsl variable value, xsl generate, xsl set,
functions variables, convert xsl, date variables, xsl multiple, include variables,
display variables, using variables, output variables, set variables, multiple variables,
xsl call, xslt parameters, xml parameters, xsl parameters, xml variable, xml variables
|
|
| HTML Quizes |
|
|
| XML Quizes |
|
|
| Browser Scripting Quizes |
|
|
| Server Scripting Quizes |
|
|
| .NET (dotnet) Quizes |
|
|
| Multimedia Quizes |
|
|
| Web Building Quizes |
|
|
| Java Quizes |
|
|
| Programming Langauges Quizes |
|
|
| Soft Skills Quizes |
|
|
| Database Quizes |
|
|
| Operating System Quizes |
|
|
| Software Testing Quizes |
|
|
| SAP Module Quizes |
|
|
| Networking Programming Quizes |
|
|
| Microsoft Office Quizes |
|
|
| Accounting Quizes |
|
|
| Computer Basics Quizes |
|
|
|