XSLT elements
From Wikipedia, the free encyclopedia
| This article or section needs to be wikified to meet Wikipedia's quality standards. Please help improve this article with relevant internal links. (July 2007) |
This article lists some of the elements used in XSLT.
Contents |
[edit] XSLT logic elements
| Node | Description/ attributes | Container/ children | Example |
|---|---|---|---|
| xsl:apply-templates | Specifies that other matches may exist within that node; if this is not specified any matches will be ignored
If “select” is specified, only the specified templates will be applied. |
Any parent No children |
<xsl:apply-templates/> |
|
xsl:choose |
Multiple choices No attributes |
Any parent Contains xsl:when blocks |
<xsl:choose> … |
|
xsl:for-each |
Creates a loop which repeats for every match
“select” designates the match criteria |
Any parent Can contain any XML |
<xsl:for-each select="input[@name=$name]">
|
|
xsl:if |
Yes or No conditions
“test” specifies criteria for entering the if |
Any parent Can contain any XML |
<xsl:if test="$type='text' or $type='password'"> … |
|
xsl:otherwise |
The default choice if none of the “xsl:when” criteria are met | xsl:choose Can contain any XML |
<xsl:otherwise> … |
|
xsl:stylesheet |
Top-level element. Occurs only once in a stylesheet document.
“version” specifies which XSLT version is being used “xmlns:xsl” specifies the URL of that standard |
Top-level element. Contains all XML | <xsl:stylesheet>
… </xsl:stylesheet> |
|
xsl:template |
Specifies processing templates “match” is when the template should be used. |
xsl:stylesheet Can contain any XML |
<xsl:template match="//input"> … |
|
xsl:variable |
Allows a variable to be declared
“name” is the variable name. It can be referred to later with “$name” “select” is the value of the variable |
Any parent no children |
<xsl:variable name="type" select="@type"/> |
|
xsl:when |
Yes or No conditions
“test” specifies criteria for entering the if |
xsl:choose
Can contain any XML |
<xsl:when test="$type='radio'"> … |
[edit] Example XSLT stylesheet using logic elements
<xsl:stylesheet>
<xsl:template match="//input">
<xsl:variable name="type" select="@type"/>
<xsl:variable name="name" select="@name"/>
<xsl:if test="$type='text' or $type='password' or $type='radio' or $type='checkbox'">
<xsl:choose>
<xsl:when test="$type='radio'">
<xsl:if test="not(preceding-sibling::input[@type='radio'])">
<select name="{@name}">
<xsl:for-each select="../input[@name=$name]">
<option value="{@value}">
<xsl:apply-templates/>
</option>
</xsl:for-each>
</select>
</xsl:if>
</xsl:when>
<xsl:when test="$type='text'">
<input name="{@name}" type="{@type}">
<xsl:apply-templates/>
</input>
</xsl:when>
<xsl:when test="$type='password'">
<input name="{@name}" type="{@type}">
<xsl:apply-templates/>
</input>
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
[edit] XSLT file I/O elements
| Node | Description/ attributes | Container/ children | Example |
|---|---|---|---|
| xsl:call-template | Calls the template whose name is specifed.
“name” matches the “name” in xsl-template |
Any parent children are xsl:with-param |
<xsl:call-template name="lib:make-elem"> |
| xsl:import | Retrieves another XSLT file "href" is the path to the file |
xls:stylesheet No children |
<xsl:import href="..\Library\FuncLib.xslt"/> |
| xsl:output | Describes how data will be returned “method” designates what kind of data is returned |
xls:stylesheet No children |
<xsl:output method="xml" omit-xml-declaration="yes" encoding="UTF-8"/> |
| xsl:param | Designates a parameter which may be passed into the template with xsl:call-template. | xsl:template No children |
<xsl:param name="elem-name"/> |
| xsl:text | Outputs the tag content | Any parent No children |
<xsl:text>ClaimNumber ClaimSeqNumber</xsl:text> |
| xsl:value-of | Outputs a variable “select” specifies the variable |
Any parent No children |
<xsl:value-of select="$s"/> |
| xsl:with-param | Designates a parameter passed to xsl:call-template. It must be matched by an xsl:param in the template. “name” specifies the parameter name. |
xsl:call-template No children |
<xsl:with-param name="elem-name" select="'hma:ClaimNumber'"/> |
Client-side XSLT can be implemented in a browser by adding a line like the following to the source XML file, right after the root XML tag. <?xml-stylesheet type="text/xsl" href="family.xsl"?>
This is described on the page http://www.xml.com/pub/a/2000/10/25/msie/index.html
[edit] Other XSLT semantics
| symbol | meaning | where used |
|---|---|---|
| | | union operator. used to group nodesets in XPath expressions. | select attributes of elements such as xsl:when, xsl:if, xsl:for-each |
| & | and | any conditional or match criterion, for example xsl:if.test, xsl:when.test, xsl:template.select and xsl:for-each.select |
| <!-- | begin comment | anywhere not in a tag |
| --> | end comment | anywhere not in a tag |
| $ | start of a variable name | anywhere in a tag, for example xsl:value-of.select and xsl.variable.name |
| name() | the name of the tag being processed. Useful if the matching criteria contains |s (pipe symbols) | any conditional or match criterion, for example xsl:if.test, xsl:when.test, xsl:template.select and xsl:for-each.select |
| @ | an attribute within the XML | any conditional or match criterion, for example xsl:if.test, xsl:when.test, xsl:template.select and xsl:for-each.select |
[edit] Functions defined by XSLT
The following functions can occur in many XSLT attributes, such as xsl:value-of.select and xsl:for-each.select.
| Function | Description/ Syntax | Example |
|---|---|---|
| ceiling | The ceiling function returns the smallest integer that is equal to or is larger than the numeric value of the number argument. | ceiling(3.57) |
| concat | Concatenates two or more strings, which are listed in the parentheses | concat($fname,’ ‘, $lname) |
| count | The count function counts and returns the number of nodes in a node-set. | count(elements) |
| floor | The floor function returns the largest integer that is equal to or is smaller than the numeric value of the number argument. | floor(3.57) |
| normalize-space | Removes white-space from the beginning and end of the string | normalize-space($fname) |
| position | The position function returns the position number in the current node list of the node that is currently being processed by an xsl:for-each or xsl:apply-templates element. There are no arguments. | position() |
| round | The round function rounds a number to its closest integer. | round(3.57) |
| string | The string function converts the value argument to a string. | string() |
| string-length | The string-length function returns the number of characters in a string. The string argument is optional. If omitted, the default is to use the string value of the context node. | string-length(‘hello’) |
| substring | A segment within a variable value. Substring takes three parameters: the input variable, the first character to be selected, and the length of the resulting string | substring($dob,4,2) |
| substring-after | The substring-after function returns a portion out of the string specified in the string argument that occurs after the substring specified in the substring argument. | substring-after(‘In 1814 we took a little trip’, ‘we’) |
| substring-before | The substring-before function returns a portion out of the string specified in the string argument that occurs before the substring specified in the substring argument. | substring-before(‘In 1814 we took a little trip’, ‘we’) |
| sum | The sum function adds and returns the total value of a set of numeric values in a node-set or list of values. | sum(1,3,7,12) |
| translate | Takes the string in the value argument, replaces all occurrences of a string specified in the string1 argument with substitute characters specified in string2 argument and returns the modified string. | translate(‘colored armor’, ‘or’, ‘our’) |
[edit] External links
- W3C XSLT 1.0 recommendation - Describes the whole syntax and semantics of XSLT 1.0
- W3C XSLT 2.0 recommendation
- XSLT Elements List - by W3Schools
|
|||||

