Platinum Partner
architects,enterprise-integration,architecture,tips and tricks,wso2,xslt

Some Basics on XSLT Transformation

This post will elucidate some basic concerns for development of XSLT scripts. While I was writing some script for a wso2 ESB XSLT transformation I decided that this process would be a useful one to share.

Firstly I will point out some XSLT Elements

template  Rules to apply when a specified node is matched and it is a top-level element. But I like to used as function and call it and reuse it. Such like java or JavaScript or C# or ruby we can pass some parameters for that method also and use them in there.

<xsl:template name="get_age">
<xsl:param name="age" select="'%str'" />
<age><xsl:value-of select="$age"/></age>
</xsl:template>

you can call this get_age from XSLT

<xsl:call-template name="get_unique_value"> 
<xsl:with-param name="age"  select="//students/james/age/node()" />

Commenting also input after xslt generate it output. In there you like to see some comments

  Here I am writing a comment for my out transformation.
</xsl:comment>

If Input XML if we have age for student name (james) write it for output. Only the age file not the parent tags.

<xsl:if test="//students/james/age!='' ">
<age><xsl:copy-of select="//students/james/age/node()"/></age>
</xsl:if>

for-each Student will have age and we need each age for each student. Element loops through each node in a specified node set.

<xsl:for-each select="//students”>
<student>
<age><xsl:copy-of select="//students/james/age/node()"/></age>
<student>
</xsl:for-each>

choose school for student age

<xsl:choose>
  <xsl:when test="age>'10'">
  <school><xsl:text>ordinary</xsl:text><school>
  </xsl:when>
  <xsl:otherwise>
  <school><xsl:text>primary</xsl:text><school>
  </xsl:otherwise>
</xsl:choose>
Next post I will write some XSLT Functions 

Published at DZone with permission of {{ articles[0].authors[0].realName }}, DZone MVB. (source)

Opinions expressed by DZone contributors are their own.

{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks
Tweet

{{parent.nComments}}